Messj 发表于 2018-2-9 22:19:28

022:All in All

本帖最后由 Messj 于 2018-6-8 23:39 编辑

poj1936:All in All

描述

给定两个字符串s和t,请判断s是否是t的子序列。即从t中删除一些字符,将剩余的字符连接起来,即可获得s。

输入

包括若干个测试数据。每个测试数据由两个ASCII码的数字和字母串s和t组成,s和t的长度不超过100000。

输出

对每个测试数据,如果s是t的子序列则输出“Yes”,否则输出“No”。

样例输入

sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter

样例输出

Yes
No
Yes
No

Messj 发表于 2018-2-9 22:20:18

设置两个指针,比较!#include<iostream>
#include<cstdio>
#include<cstring>

using namespace std;
string s1,s2;
int main()
{
        while(cin>>s1>>s2)
        {
                int len1=s1.length();
                int len2=s2.length();
                int i=0,j=0;
                while(j<len2)
                {
                        if(s1==s2)
                        {
                                i++;
                                j++;
                                if(i==len1)
                                {
                                        cout<<"Yes"<<endl;
                                        break;
                                }
                        }
                        else
            {
               j++;
               if(j==len2)
               {
                     cout<<"No"<<endl;
                     break;
               }
            }
                }
        }
        return 0;
}
页: [1]
查看完整版本: 022:All in All