題目地址:https://leetcode.com/problems/rotate-string/description/
大意:看題目的名字就應(yīng)該能看出來(lái)意思了。就是看B是不是由A“旋轉(zhuǎn)”而成的,即A的一部分放到最前面或最后面而成。
思路1:暴力解法。
把A所有的旋轉(zhuǎn)后的字符串都找出來(lái)看看有沒(méi)有一個(gè)跟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:巧妙解法。
其實(shí)只要看B是不是A+A的子集就行了,python判斷子集的方法又是如此簡(jiǎn)單,一行代碼搞定。
def rotateString2(self, A, B):
"""
:type A: str
:type B: str
:rtype: bool
"""
return len(A) == len(B) and B in A + A