题解一:既然是判断是否可以从某一处反转可以得到一样的字符串,那么可以遍历字符串A,找到A[i]==B[0],并在i处旋转A,判断是否相同即可,相同返回true,遍历后还没有发现就返回false
class Solution: def solve(self , A: str, B: str) -> bool: # write code here n = len(A) for i in range(n): if A[i] == B[0]: A = A[i:] + A[:i] if A==B: return True return False
题解二:监于该题的特殊性,从某一个位置处旋转,则在A字符串后加上A,A+A中可以截取到从任何位置旋转的字符串。若B在A+A中那么就是true。当然,首要排除A、B的长度不相同
class Solution: def solve(self , A: str, B: str) -> bool: # write code here if B in A+A and len(A)==len(B): return True else: return False