📌  相关文章
📜  检查字符串是否相互旋转的程序 (1)

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

检查字符串是否相互旋转的程序

有时候,在面试或者日常编程工作中,我们需要判断两个字符串是否相互旋转。例如,给定两个字符串s1和s2,我们要判断s2是否是s1旋转后的结果。

下面是一段Python代码,可以判断两个字符串是否相互旋转:

def is_rotation(s1, s2):
    if len(s1) != len(s2):
        return False
    s1s1 = s1 + s1
    return s2 in s1s1

我们来逐行解释一下这段代码的含义:

  • 第一行定义了一个名为is_rotation的函数,该函数接受两个字符串s1s2作为参数。
  • 第二行判断s1s2的长度是否相同,如果不同就直接返回False,因为两个长度不同的字符串肯定不可能相互旋转。
  • 第三行将s1s1拼接起来,得到s1s1,这是为了方便后面的判断。
  • 第四行使用in运算符判断s2是否是s1s1的子串,如果是,就返回True,否则返回False

下面是一个示例:

s1 = "abcd"
s2 = "dabc"
print(is_rotation(s1, s2)) # 输出 True

注意,这个算法只适用于判断两个字符串是否相互旋转,不适用于判断一个字符串是否是另一个字符串的子串。如果要判断一个字符串是否是另一个字符串的子串,应该使用其他算法,例如KMP算法、Boyer-Moore算法等。