poj1936--暴力解法

求s1是否是s2的子串。

分析:

例如sequence 和 subsequence 。

从头开始比较,s1[0]与s2[0]相同,那么它们下标都可+1,接着比较s1[1]和s2[1],不相同;这时应该保证s1[1]不动,而把s2下标+1.直到s1,s2下标移动到最后一位,若s1下标移动到了最后一位,显然判定成功了;如果s2下标到了最后一位,而s1没有,那么没有判定成功。

#include<iostream>
#include<string>
using namespace std;
int main(){
    string a,b;
    int i,j;
    while(cin>>a>>b){
        i=0;j=0;
        while(1){
            if(a[i]==b[j]){
                i++;j++;
            }
            else
            j++;
            if(i==a.length()){
                cout<<"Yes"<<endl;break;
            }
            if(i<a.length()&&j==b.length()){
                cout<<"No"<<endl;break;
            }
        }
    }
    return 0;
}
时间: 2024-07-30 10:19:57

poj1936--暴力解法的相关文章

poj 2907 Collecting Beepers 邮递员问题暴力解法

题意: 给起点和n个点,求从起点出发经过这n个点每个点至少一次再回到起点的最短路. 分析: 类似邮递员问题,直接用STL枚举访问顺序暴力解决. 代码: //poj 2907 //sep9 #include <iostream> #include <algorithm> using namespace std; int x[16],y[16]; int d[16][16]; int a[16]; int n; int main() { int cases; scanf("%

最长公共子串_暴力解法(不会正解)

最长公共子串 lcs.cpp/.in/.out 计算两个字符串的最大公共子串(Longest Common Substring)的长度,字符不区分大小写,这里的最大公共子串要求的字串是连续的. 输入: 两行,每行一个字符串,字符串长度<=1000. 输出: 输出一个整数,表示公共子串的长度. 样例输入: asdfas werasdfaswer 样例输出: 6 下面上代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 char o[

二叉树的后序遍历(暴力版) 小白菜oj 1034

给出二叉树的前序遍历和中序遍历,求二叉树的后序遍历-- 作为一个搜索蒟蒻,我真的没有办法很和谐的A掉,但估计过几天就会写有关这个题的和谐的解法--但只是估计-- 下面讲述我的超暴力解法-- 首先,先由前序遍历得到一个父亲节点,然后再由中序遍历得到这个父亲节点的左子树和右子树中的元素(中序遍历中,该点的左边的所有点,都在它的左子树,右边的都在它的右子树,子树中的根节点是在这些节点的前序遍历中排名最靠前的),然后递归建树,之后在递归求后序遍历即可. 但这个方法有两个比较--&¥--&的问题:1

HDOJ 1394 Minimum Inversion Number 求循环串的最小逆序数(暴力&amp;&amp;线段树)

Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14879    Accepted Submission(s): 9082 Problem Description The inversion number of a given number sequence a1, a2, ..., a

1003蛮力解法

   /**      * 5 -1 -1 -1 -1 -1      * 7 0 6 -1 1 -6 7 -5      * 5 6 -1 5 4 -7      * G和最大的子序列,输出最大和还有起始与截止下标(暴力解法,超时了Time Limit Exceeded)      * @param args the command line arguments      */     public static void main(String[] args) {         int N

Codeforces 993A. Two Squares(暴力求解)

解题思路(暴力解法) 平行于x轴的正方形和与x轴成45度倾斜的正方形相交的点中必定有整数点.即若两正方形相交,必定存在整数i,j,使(i,j)同时属于两个正方形. 我们把两个正方形中的整数点都找出来,看一下有没有重复点,就可以判断是否相交. 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; struct point{ int x;int y; }sq[4],sp[4]; bool cmp(point a

LeetCode算法题-Valid Perfect Square(Java实现-四种解法)

这是悦乐书的第209次更新,第221篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第77题(顺位题号是367).给定正整数num,写一个函数,如果num是一个完美的正方形,则返回True,否则返回False.例如: 输入:16 输出:true 输入:14 输出:false 注意:不要使用任何内置库函数,例如sqrt. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02 第一种解法 暴力解法

矩阵乘法的Strassen算法详解

题目描述 请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法. 思路分析 根据wikipedia上的介绍:两个矩阵的乘法仅当第一个矩阵B的列数和另一个矩阵A的行数相等时才能定义.如A是m×n矩阵和B是n×p矩阵,它们的乘积AB是一个m×p矩阵,它的一个元素其中 1 ≤ i ≤ m, 1 ≤ j ≤ p. 值得一提的是,矩阵乘法满足结合律和分配率,但并不满足交换律,如下图所示的这个例子,两个矩阵交换相乘后,结果变了: 下面咱们来具体解决这个矩阵相乘的问题. 解法一.暴力解法 其实,通过前面的分析

找出矩阵中含有0最多的一行(find the longest row of zero)

对于一个n*n的矩阵,其中只包含有0,1两种元素且,所有的0都在1之前,请找出矩阵中0最多的一行.(Given an N-by-N matrix of 0s and 1s such that in each row no 0 comes before a 1, find the row with the most 0s in O(N) time.) 初看这题,想到的算法就是每一行都设置一个计数器,记录每行的0的个数,然后找出最大值即可(暴力解法). 算法实现: int* find_the_lon

leetcode-1 Two Sum 找到数组中两数字和为指定和

 问题描述:在一个数组(无序)中快速找出两个数字,使得两个数字之和等于一个给定的值.假设数组中肯定存在至少一组满足要求. <剑指Offer>P214(有序数组) <编程之美>P176 Que:Given an array of integers, find twonumbers such that they add up to a specific target number. The function twoSum should return indices ofthe tw