题目描述
字符串轮转。给定两个字符串
s1
和s2
,请编写代码检查s2
是否为s1
旋转而成(比如,waterbottle
是erbottlewat
旋转后的字符串)。
示例1
输入:s1 = "waterbottle", s2 = "erbottlewat" 输出:True
示例2
输入:s1 = "aa", s2 = "aba" 输出:False
做题思路
1. 错误提示:容易和面试题 01.02. 判定是否互为字符重排(简单)_黑黑藏不住的博客-CSDN博客
混淆,字符重排不谈及顺序问题,而本题是有相对顺序存在的。
2. 本题思路:由于字符串是轮转的,即我们将轮转后的字符串进行自身拼接,那么一定是包含原字符串的。
代码
class Solution {
public boolean isFlipedString(String s1, String s2) {
int len1=s1.length();
int len2=s2.length();
if(len1!=len2) return false;
String s=s2+s2;
return s.contains(s1);
}
}