题目地址:https://leetcode.com/problems/rotate-string/description/
大意:看题目的名字就应该能看出来意思了。就是看B是不是由A“旋转”而成的,即A的一部分放到最前面或最后面而成。
思路1:暴力解法。
把A所有的旋转后的字符串都找出来看看有没有一个跟B是一样的。
def rotateString1(self, A, B):
if len(A) != len(B):
return False
if len(A) == 0:
return True
for s in range(len(A)):
if all(A[(s + i) % len(A)] == B[i] for i in range(len(A))):
return True
return False
思路2:巧妙解法。
其实只要看B是不是A+A的子集就行了,python判断子集的方法又是如此简单,一行代码搞定。
def rotateString2(self, A, B):
"""
:type A: str
:type B: str
:rtype: bool
"""
return len(A) == len(B) and B in A + A