赞
踩
在c语言中,数组存在左旋,右旋的概念,所谓左旋,例如字符串ABCDE,左旋一位得到的就是BCDEA,旋转6位得到的是DCBAE左移一次就是把最左边的一位移到最右边
右旋:ABCDE,右旋一位就是EABCD,以此类推,下面模拟实现一则字符串的左旋
int find_move(char* str1, char* str2)
{
if (strlen(str1) != strlen(str2))
{
return 0;
}
int len = strlen(str1);
//str1后面追加一个str1,len为追加的个数
strncat(str1, str1, len);
//判断str2是否为str1的子集
char* ret = strstr(str1, str2);
return ret != NULL;//不等于空值返回1
}
int main()
{
char arr1[20] = "AABCD";
char arr2[] = "BCDAA";
int ret = find_move(arr1, arr2);
if (ret == 1)
{
printf("yes\n");
}
else
{
printf("no\n");
}
return 0;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。