📌  相关文章
📜  检查是否可以通过将另一个字符串旋转 d 个位置来获得一个字符串(1)

📅  最后修改于: 2023-12-03 15:26:47.955000             🧑  作者: Mango

检查字符串是否可以通过旋转获得

给定两个字符串str1str2,判断是否可以通过将str2旋转d个位置(其中d为非负整数)得到str1

思路解析

我们可以将字符串str2翻转,然后将其分割成两部分:str2[0:len(str2)-d]str2[len(str2)-d:]。然后将这两部分分别翻转,并将它们再次连接在一起,形成新的字符串temp_str。如果temp_strstr1相等,则说明可以通过旋转获得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)$。