796.Rotate String¶
Tags: String
Easy
Links: https://leetcode.com/problems/rotate-string/
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
.
Answer:
class Solution {
public:
string shift(string & str){
if (str.size() <= 1) return str;
string tmp;
for (int i = 1; i < str.size(); ++i){
tmp += str[i];
}
tmp += str[0];
return tmp;
}
bool rotateString(string A, string B) {
if (A.size() != B.size()) return false;
int n = A.size();
if (n == 0){
return true;
}
else{
for (int i = 1; i <= n; ++i){
if (A == B)
return true;
else{
A = shift(A);
}
}
}
return false;
}
};