给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。
s 的 旋转操作 就是将 s 最左边的字符移动到最右边。
例如, 若 s = 'abcde',在旋转一次之后结果就是'bcdea' 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rotate-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution(object):
def rotateString(self, s, goal):
"""
:type s: str
:type goal: str
:rtype: bool
"""
# if len(s) != len(goal):
# return False
# for i in range(len(s)):
# if s[i] == goal[0]:#用意是先找到开始字符串,然后后面的部分加上前面的拼接
# if s[i:] + s[:i] == goal:
# return True
# return False
return len(s)==len(goal) and goal in s+s#更巧妙的方法。旋转以后的结果都是这个拼接以后的长字符串的子集