如何在Python中判断字符串是否重复?
**在本文中,我们将找出如何在Python中判断字符串是否重复。 **
第一种方法是使用切片和 find() 方法。我们想看看我们拥有的字符串是否完全由字符串子字符串重复构成的。我们可以通过在一对字符串中查找字符串的旋转来确认这一点。
在添加字符串并检查该字符串中的根字符串之后,除了最后一个和第一个字符,我们可以搜索根字符串。对于长度小于2的字符串,此方法不起作用。
更多Python相关文章,请阅读:Python 教程
示例1
在下面的示例中,我们输入一个字符串,使用切片和 find() 方法检查它是否重复。 −
def find_period(s):
i = (s+s).find(s, 1, -1)
return None if i == -1 else s[:i]
str1 = '012012012012012'
print("给定的字符串是")
print(str1)
print("检查是否有任何重复的子字符串")
res = find_period(str1)
print(res)
输出
上面示例的输出如下所示
给定的字符串是
012012012012012
检查是否有任何重复的子字符串
012
示例2
在下面的示例中,我们采用与上述相同的程序,但我们采用不同的输入并检查它是否重复。 −
def find_period(s):
i = (s+s).find(s, 1, -1)
return None if i == -1 else s[:i]
str1 = 'abcdefgh'
print("给定的字符串是")
print(str1)
print("检查是否有任何重复的子字符串")
res = find_period(str1)
print(res)
输出
上述示例的输出如下所示
给定的字符串是
abcdefgh
检查是否有任何重复的子字符串
None
使用蛮力的方法
第二种方法是蛮力法,我们将继续迭代字符串并检查重复序列。这项工作可以通过选择性切片和蛮力方法完成。这是一种原始的字符串发现方法,我们通过反复分割字符串来尝试识别根字符串。
示例
在下面的示例中,我们输入一个字符串,使用列表理解检查该字符串的任何部分是否重复 −
str1 = '012012012012012'
print("给定的字符串是")
print(str1)
print("检查是否有任何重复的子字符串")
res = None
for i in range(1, len(str1)//2 + 1):
if (not len(str1) % len(str1[0:i]) and str1[0:i] *(len(str1)//len(str1[0:i])) == str1):
res = str1[0:i]
print(res)
输出
上述示例的输出如下所示
给定的字符串是
012012012012012
检查是否有任何重复的子字符串
012