方法一:模拟法
思想:
1.当S与goal一样时,返回True
2.遍历S,使用切片分别获取字符串的后部分和前部分,并将着两部分组成新字符串
3.将新字符串与goal比较,相等的话,返回True
4.知道全部反转,如果还与goal不相等的话,返回False
class Solution:
def rotateString(self, s: str, goal: str) -> bool:
if s == goal:
return True
l = len(s)
for i in range(1,l):
new_s = s[i:l] + s[0:i]
if new_s == goal:
return True
return False
方法二:搜索字符串
思想:如果s与goal长度不相等,则再反转也不会相等,即返回False; 如果长度相等,goal使s+s的子串,也返回True(发现的规律,技巧)
class Solution:
def rotateString(self, s: str, goal: str) -> bool:
return len(s) == len(goal) and goal in s + s