给定两个字符串, s
和 goal
。如果在若干次旋转操作之后,s
能变成 goal
,那么返回 true
。
例如:
输入:s = "abcd", goal = "cdab"
输出:True
思路:
先判断s和i字符串长度是否相等,不相等返回False,如果长度相等,移动i次后,s等于goal,则s移动i次后对应的每个字符应该与goal对一的字符相等,我们可以枚举s和goal中的每一个值,按照对应的值进行比较,如,goal[j]对应s中的值为s[(i+j)%n],n为s的长度,把所有s和goal中对应的值进行比较,全部相等则返回True, 否则返回False
代码
l1 = len(s)
l2 = len(goal)
if l1 != l2:
return False
for i in range(l1):
for j in range(l1):
if s[(i + j) % l1] != goal[j]:
break
else:
return True
return False