难度简单94收藏分享切换为英文接收动态反馈
字符串轮转。给定两个字符串s1
和s2
,请编写代码检查s2
是否为s1
旋转而成(比如,waterbottle
是erbottlewat
旋转后的字符串)。
示例1:
输入:s1 = "waterbottle", s2 = "erbottlewat" 输出:True
示例2:
输入:s1 = "aa", s2 = "aba" 输出:False
提示:
- 字符串长度在[0, 100000]范围内。
说明:
- 你能只调用一次检查子串的方法吗?
这道题其实不难,主要是看看思维灵不灵活。就是一开始我想的比较复杂,而且还是错误的做法,太想当然了、
首先判断s1和s2的长度是不是相同,如果不同,肯定是不对的
然后如果s2是s1的轮转,如题目的例子,那么两个s2相加是'erbottlewaterbottlewat',当中一定会包含一个s1.说明里面也提示了,要调用检查子串的方法。
所以代码只需要一条return语句就可以实现了
var isFlipedString = function(s1, s2) {
return s1.length==s2.length&&(s2+s2).indexOf(s1)!=-1
};