
给定两个字符串, 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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)