http://acm.hdu.edu.cn/showproblem.php?pid=2203
/*
char* strstr(const char* a,constchar* b) 在a中寻找第一次出现b的位置
如果出现,返回位置,如果不出现,返回空指针;
利用这一特点,我们将s1字符串长度加长一部分(s2的长度),加长的内容为s1的前strlen(s2)个字符;
最后用函数判断s2是否在s1中出现;
over~~
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <string>
#include <iomanip>
#define maxn 100005
using namespace std;
char s1[2*maxn],s2[maxn];
int main(int argc, char *argv[])
{
while(scanf("%s%s",&s1,&s2)!=EOF)
{
int len1 = strlen(s1),len2 = strlen(s2);
if(len2>len1)
{
puts("no");
continue;
}
for(int i = len1,j = 0; i < len1+len2; i++)
{
s1[i] = s1[j++];
}
len1 = len1+len2;
if(strstr(s1,s2)!=NULL)
{
puts("yes");
}
else
{
puts("no");
}
}
return 0;
}
本文介绍了一种特殊的字符串匹配方法,通过扩展原始字符串并使用strstr函数来判断一个字符串是否为另一个字符串的子串。此方法适用于需要高效查找子串的场景。
3908

被折叠的 条评论
为什么被折叠?



