您的位置:首页 > 其它

习题3-9 UVa10340 All in All

2015-11-12 22:10 381 查看
要点:

1.应该由较长的字符串迭代寻找,否则从小的开始,还需比较各个字母对应位置大小而且若存在多个字母重复出现的情况会出现错误,长字符串一遍走完,一个个寻找跟小字符串相同的字符,若相同的数目等于小字符串长度,则满足条件

#include<stdio.h>
#include<string.h>
int main()
{
char s[100000], t[100000]; //s是较小的那个,t是较大的那个
while (scanf("%s %s", s, t) != EOF)
{
int i = 0;
int lens = strlen(s);
int lent = strlen(t);
for (int j = 0; j < lent; j++)//由长字符串迭代
{
if (lens - i > lent - j)//小字符串剩下的长度若大于大字符串剩下的长度,那么肯定是不满足条件的
break;
if (s[i] == t[j])
i++;
}
if (i==lens)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}


学习心得:

1.这种题一般由大数迭代比较
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: