1、判断一个字符串是否为另外一个字符串旋转之后的字符串。
例如:给定s1 =AABCD和s2 = BCDAA,返回1
给定s1=abcd和s2=ACBD,返回0.
AABCD左旋一个字符得到ABCDA
AABCD左旋两个字符得到BCDAA
AABCD右旋一个字符得到DAABC
2、程序
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <malloc.h>
#include <string.h>
int IsRotate(char *dest, const char *src)
{
int len = strlen(dest);
//自己复制自己两遍,再判断字串是否为dest旋转后的字符串
strncat(dest, dest, len);
if (strstr(dest, src)==NULL)
{
return 0;
}
return 1;
}
int main()
{
char dest[30]="AABCD";
char src[30]="BCDAA";
int ret = IsRotate(dest, src);
printf("%d\n", ret);
system("pause");
return 0;
}
3、结果