当前位置: 首页 > 知识库问答 >
问题:

在Python中如何判断字符串是否重复?

顾池暝
2023-03-14
[
    '0045662100456621004566210045662100456621',             # '00456621'
    '0072992700729927007299270072992700729927',             # '00729927'
    '001443001443001443001443001443001443001443',           # '001443'
    '037037037037037037037037037037037037037037037',        # '037'
    '047619047619047619047619047619047619047619',           # '047619'
    '002457002457002457002457002457002457002457',           # '002457'
    '001221001221001221001221001221001221001221',           # '001221'
    '001230012300123001230012300123001230012300123',        # '00123'
    '0013947001394700139470013947001394700139470013947',    # '0013947'
    '001001001001001001001001001001001001001001001001001',  # '001'
    '001406469760900140646976090014064697609',              # '0014064697609'
]
[
    '004608294930875576036866359447',
    '00469483568075117370892018779342723',
    '004739336492890995260663507109',
    '001508295625942684766214177978883861236802413273',
    '007518796992481203',
    '0071942446043165467625899280575539568345323741',
    '0434782608695652173913',
    '0344827586206896551724137931',
    '002481389578163771712158808933',
    '002932551319648093841642228739',
    '0035587188612099644128113879',
    '003484320557491289198606271777',
    '00115074798619102416570771',
]

如何判断字符串是否在重复,如果是,最短的重复子序列是多少?

共有1个答案

东郭勇
2023-03-14

下面是一个简洁的解决方案,它避免了正则表达式和缓慢的in-Python循环:

def principal_period(s):
    i = (s+s).find(s, 1, -1)
    return None if i == -1 else s[:i]

有关基准测试结果,请参见@Davidism启动的社区Wiki答案。总而言之,

David Zhang的解决方案显然是赢家,对于大型示例集来说,它的性能至少比所有其他人高出5倍。

 类似资料:
  • 问题内容: 我正在寻找一种方法来测试给定的字符串是否对整个字符串重复。 例子: 是重复的字符串,并且 是那些没有的例子。 我得到的字符串的重复部分可能很长,而且字符串本身可以是500个或更多字符,因此循环遍历每个字符以尝试构建模式,然后检查模式与字符串的其余部分似乎很慢。将其乘以可能的数百个字符串,就看不到任何直观的解决方案。 我对正则表达式进行了一些研究,当您知道要查找的内容时,或者至少在寻找所

  • Python3 实例 以下实例通过创建自定义函数 is_number() 方法来判断字符串是否为数字: 实例(Python 3.0+)# -*- coding: UTF-8 -*- # Filename : test.py # author by : www.runoob.com def is_number(s): try: float(s) return True except ValueErr

  • 检查给定的参数是否是一个字符串。 使用 typeof 来检查一个值是否为一个字符串。 const isString = val => typeof val === 'string'; isString('10'); // true

  • Python3 实例 以下代码演示了Python字符串的判断: # Filename : test.py # author by : www.runoob.com # 测试实例一 print("测试实例一") str = "runoob.com" print(str.isalnum()) # 判断所有字符都是数字或者字母 print(str.isalpha()) # 判断所有字符都是字母 pr

  • 本文向大家介绍python判断字符串是否纯数字的方法,包括了python判断字符串是否纯数字的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python判断字符串是否纯数字的方法。分享给大家供大家参考。具体如下: 判断的代码如下,通过异常判断不能区分前面带正负号的区别,正则表达式可以根据自己需要比较灵活的写,通过isdigit方法用来判断是否是纯数字,测试代码如下 输出结果如下: 判

  • 问题内容: 我有一个带有文本框的页面,用户应在其中输入24个字符(字母和数字,不区分大小写)的注册码。我曾经限制用户输入24个字符。 注册代码通常以破折号分隔的字符组形式给出,但是我希望用户输入不带破折号的代码。 如何在没有jQuery的情况下编写JavaScript代码,以检查用户输入的给定字符串不包含破折号,或者更好的是,仅包含字母数字字符? 问题答案: 在中找到“你好”