文章
6
粉丝
137
获赞
2
访问
5.9k
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define N 10010
char s1[N], s2[N]; //存储两个字符串
char str[N][N]; //存储s2所有移位后的字符串
int len1, len2; //存储两个字符串的长度
bool isRemove()
{
if (len1 != len2) //如果长度不一样,不用比较一定不是移位的
return false;
int i, j, k = 0;
int index; //用来记录移位后的索引
//i用来记录移位的步长
for (i = 0; i < len2; i++)
{
for (j = 0; j < len2; j++)
{
index = (i + j) % len2; //计算新的索引位置
str[k][index] = s2[j]; //存放到str中
}
k++;
}
//遍历移位后的所有字符串
for (i = 0; i < k; i++)
{
//找到匹配了的字符串,说明是移位后的
if (strcmp(s1, str[i]) == 0)
return true;
}
return false;
}
int main()
{
scanf("%s%s", s1, s2);
len1 = strlen(s1);
len2 = strlen(s2);
if (isRemove())
printf("Y\n");
else
printf("N\n");
return 0;
}
登录后发布评论
暂无评论,来抢沙发