题目链接:FZU 2154 YesOrNo
模拟。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int MAX_N = 500000 + 1000;
char s1[MAX_N], s2[MAX_N];
int main()
{
while(scanf("%s", s1) != EOF)
{
scanf("%s", s2);
int len = strlen(s1);
int f, k = 0;
bool flag = true, flag2 = false;
for(int i = 0; i < len; i++)
{
flag = true, flag2 = false;
if(s2[i] == s1[0])
{
flag2 = true;
k = 1;
for(int j = i + 1; j < len && flag; j++)
{
if(s2[j] != s1[k])
flag = false;
k++;
}
for(int j = 0; j < i && flag; j++)
{
if(s2[j] != s1[k])
flag = false;
k++;
}
if(flag)
break;
}
}
if(flag && flag2)
puts("Yes");
else
puts("No");
}
return 0;
}