UVa10340 All in All (子序列)
输入两个字符串s和t,判断是否可以从t中删除0个或者多个字符(其他字符顺序不变),得到字符串s。例如,abcde可以得到bce,但无法得到cb。
Input输入多组数据
每组一行包含两个字符串s和t,两字符串之间用空格隔开。
字符串长度在100000以内
Output输出Yes或No
Sample Inputsequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatterSample 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&<>=0) { if(t[lt]!=s[ls]) ls--; else { lt--; ls--; } } if(lt==-1) printf("Yes\n"); else printf("No\n"); } }