📅  最后修改于: 2023-12-03 15:26:47.955000             🧑  作者: Mango
给定两个字符串str1
和str2
,判断是否可以通过将str2
旋转d
个位置(其中d为非负整数)得到str1
。
我们可以将字符串str2
翻转,然后将其分割成两部分:str2[0:len(str2)-d]
和str2[len(str2)-d:]
。然后将这两部分分别翻转,并将它们再次连接在一起,形成新的字符串temp_str
。如果temp_str
与str1
相等,则说明可以通过旋转获得str1
。
示例代码如下:
def check_rotation(str1, str2, d):
if len(str1) != len(str2):
return False
length = len(str2)
rotate = d % length
if str1 == (str2[length - rotate:] + str2[:length - rotate])[::-1]:
return True
return False
以上就是判断字符串是否可以通过旋转获得的方法,时间复杂度为$O(n)$。