UVa10340 All in All (子序列)

输入两个字符串s和t,判断是否可以从t中删除0个或者多个字符(其他字符顺序不变),得到字符串s。例如,abcde可以得到bce,但无法得到cb。

Input

输入多组数据

每组一行包含两个字符串s和t,两字符串之间用空格隔开。

字符串长度在100000以内

Output

输出Yes或No

Sample Input
sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter
Sample Output
Yes
No
Yes
No


解答:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
string s,t;
int ls,lt;
int main()
{
    while(cin>>t>>s)
    {
        ls=s.length()-1;
        lt=t.length()-1;
        while(ls>=0&&lt>=0)
        {
            if(t[lt]!=s[ls]) ls--;
            else
            {
                lt--;
                ls--;
            }
        }
        if(lt==-1) printf("Yes\n");
        else printf("No\n");
    }
}

猜你喜欢

转载自www.cnblogs.com/satans/p/11111388.html
ALL