We are given two strings, A
and B
.
A shift on A
consists of taking string A
and moving the leftmost character to the rightmost position. For example, if A = 'abcde'
, then it will be 'bcdea'
after one shift on A
. Return True
if and only if A
can become B
after some number of shifts on A
.
Example 1: Input: A = 'abcde', B = 'cdeab' Output: true Example 2: Input: A = 'abcde', B = 'abced' Output: false
Note:
A
andB
will have length at most100
.
解题思路:先判断A和B是否相同,不相同则将A的字符串进行循环交换位置,再与B比较
class Solution {
public:
bool rotateString(string A, string B) {
if(A.compare(B)==0){
return true;
}
for(int i=0;i<A.length();i++){
A=exchange(A);
if(A.compare(B)==0){
return true;
break;
}
}
return false;
}
string exchange(string A){
for(int i=0;i<A.length()-1;i++){
char a=A[i];
A[i]=A[i+1];
A[i+1]=a;
}
return A;
}
};