标签:while algo 匹配 res break strlen 一个 ssi color
此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置。
题目链接(vjudge):https://vjudge.net/problem/UVA-10340
题目大意:
输入包含多组数据,以EOF结束。
每组数据中有两个字符串s,t,中间以空格隔开。问:能否在t中删去0个或若干个字符,使得s == t。
如果能,输出Yes,不能,输出No。
样例输入:
sequence subsequence
person compression
VERDI vivaVittorioEmanueleReDiItalia
caseDoesMatter CaseDoesMatter
样例输出:
Yes
No
Yes
No
分析:
一层for循环遍历t中的字符,用一个变量作为指针去匹配s中字符即可。
AC代码:
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<algorithm> 5 #include<cmath> 6 7 char s[10005],t[100005]; 8 int lens,lent,now; 9 10 int main() 11 { 12 while(scanf("%s %s",s,t) != EOF) 13 { 14 lens = strlen(s),lent = strlen(t); 15 now = 0; 16 for(int i = 0;i < lent;++ i){ 17 if(t[i] == s[now]) 18 ++ now; 19 if(now == lens) 20 break; 21 } 22 if(now == lens) printf("Yes\n"); 23 else printf("No\n"); 24 } 25 return 0; 26 }
标签:while algo 匹配 res break strlen 一个 ssi color
原文地址:http://www.cnblogs.com/shingen/p/7648782.html