📅  最后修改于: 2023-12-03 15:23:03.573000             🧑  作者: Mango
该题目要求我们编写一个程序,以确定两个字符串是否是“旋转”字符串。所谓旋转字符串,是指将一个字符串的一部分移动到其结尾,并将前面的一部分移动到后面形成的新字符串。例如,字符串“abcd”可以通过移动其一部分而变成“dabc”。
以下是针对此问题的算法实现:
def is_rotation(s1, s2):
# 检查两个字符串的长度是否相等
if len(s1) != len(s2):
return False
# 将第一个字符串复制一遍,然后拼接在一起
s1s1 = s1 + s1
# 检查第二个字符串是否是第一个字符串的旋转
return s2 in s1s1
该算法实现了以下步骤:
下面是一个示例,展示了如何使用上述函数来确定两个字符串是否为旋转字符串:
s1 = "abcd"
s2 = "dabc"
if is_rotation(s1, s2):
print("{} and {} are rotation strings".format(s1, s2))
else:
print("{} and {} are not rotation strings".format(s1, s2))
输出结果应为:
abcd and dabc are rotation strings
该算法是一种简单而有效的解决方案,可以快速确定两个字符串是否是旋转字符串,时间复杂度为O(n)。在实际应用中,我们可以将其用于字符串匹配、文本处理等方面。