796. 旋转字符串
给定两个字符串, A
和 B
。
A
的旋转操作就是将 A
最左边的字符移动到最右边。 例如, 若 A = 'abcde'
,在移动一次之后结果就是'bcdea'
。如果在若干次旋转操作之后,A
能变成B
,那么返回True
。
示例 1: 输入: A = 'abcde', B = 'cdeab' 输出: true 示例 2: 输入: A = 'abcde', B = 'abced' 输出: false
bool rotateString(char* A, char* B) {
int len = strlen(A);
int len1 = strlen(B);
int i = 0;
int j = 0;
int flag = 0;
int ans = 0;
if(len != len1)
return false;
if(len == 0)
return true;
for(int j = 0;j < len;j++){
i = 0;
if(A[i] == B[j]){
flag = 0;
int k = j;
while(i < len){
if(A[i++] != B[(k++) % len]){
flag = 1;
break;
}
}
if(flag == 0){
ans = 1;
break;
}
}
}
if(ans == 1)
return true;
return false;
}
字符串匹配的题目,虽然是旋转但是通过取余运算可以将这题转化成一个字符串相等的问题,每次先找到与第一个字符相等的作为开始,然后依次往下找,如果全部相等就返回true