题目
思路 模拟
每次把最左边的字符移到最右边,判断两字符串是否相等。
代码
class Solution {
public:
bool rotateString(string s, string goal) {
if(s.size() != goal.size()) return false;
int n = s.size();
string tmp = s;
for(int i = 0; i < n; i++){
tmp = tmp[n - 1] + tmp.substr(0,n - 1);
if(tmp == goal)
return true;
}
return false;
}
};
思路 搜索子字符串
在字符串a+a中寻找是否有子字符串goal。
代码
class Solution {
public:
bool rotateString(string s, string goal) {
return s.size() == goal.size() && (s + s).find(goal) != string::npos;
}
};