📌  相关文章
📜  检查字符串是否彼此旋转。套装2(1)

📅  最后修改于: 2023-12-03 14:55:45.875000             🧑  作者: Mango

检查字符串是否彼此旋转
介绍

有两个字符串,如果它们通过旋转其中一个字符串所得到,那么它们就是彼此旋转的字符串。例如,'abc' 和 'cab' 就是彼此旋转的字符串。

题目来源:LeetCode 796. Rotate String

实现思路
  1. 首先判断两个字符串的长度是否相等,若不相等则它们一定不是彼此旋转的字符串。
  2. 将第一个字符串旋转,判断旋转后的字符串是否和第二个字符串相等。
  3. 如果第一个字符串旋转了它的长度次数后都无法与第二个字符串相等,则它们就不是彼此旋转的字符串。
代码实现
def rotateString(s: str, goal: str) -> bool:
    if len(s) != len(goal):  # 如果两个字符串长度不相等,那么它们不可能是彼此旋转的字符串
        return False
    for i in range(len(s)):
        if s[i:] + s[:i] == goal:  # 将 s 旋转,判断旋转后的字符串是否和 goal 相等
            return True
    return False
总结

判断两个字符串是否彼此旋转,本质上就是判断一个字符串是否可以通过循环移位得到另一个字符串。这个思路比较容易想到,对于字符串的操作也比较基本。