题目描述
给定两个字符串s和goal,如果在若干次旋转操作后s能够变成goal,那么就返回True
s的旋转操作就是把s最左面的字符放到最右面
例如:
s = ‘abcde’
旋转一次就是‘bceda’
而如果goal是bceda,那么goal就是s的旋转字符串
Python中的标准库是为了提高程序员开发效率,减少学习成本,而设计的一系列方便代码编写的方法。与之对应的还有第三方库,也就是python并不自带,需要自己安装后使用的
下面通过标准库中的方法,完成旋转字符串
事实上,s旋转后的几种结果可以在s+s的字串中找到
例如bceda,就包含在abcdeabcde中
解决办法
- 判断s和goal的长度是否相等,如果不相等就是false
- 判断goal是否为s + s的字串,是返回True,不是返回false
可以使用下面这种方法来判断一个字符串是不是一个字符串的子串
字符串1 in 字符串2
详细代码
def rotateStr(s: str, goal: str):
if len(s) != len(goal):
return False
return goal in (s + s)
print(rotateStr("abcde", "deabc"))
print(rotateStr("abcde", "acbde"))