给定两个字符串, s 和 goal。如果在若干次旋转操作之后,s 能变成 goal ,那么返回 true 。
s 的 旋转操作 就是将 s 最左边的字符移动到最右边。
例如, 若 s = ‘abcde’,在旋转一次之后结果就是’bcdea’ 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/rotate-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:直接找到goal中第一个数字在s中的索引(索引有可能会是多个要注意),然后截断s拼接,能拼成就True,否则False。
python3实现:
class Solution:
def rotateString(self, s: str, goal: str) -> bool:
# 直接找到goal开头的字母在s中的位置,然后截断s,重新拼接看看能不能成为goal,能就true,不能就false
goal_start = goal[0]
if goal_start in s:
# 这里注意有可能出现很多一样的goal_start,要分别做判断
goal_start_idx = []
for elem_idx in range(len(s)):
goal_start_idx.append(elem_idx)
for each in goal_start_idx:
part1 = s[each:]
part2 = s[:each]
combine = part1 + part2
if combine == goal:
return True
return False
else:
return False
