当前位置: 首页 > 面试题库 >

检测字符串中的重复

樊运乾
2023-03-14
问题内容

我有一个简单的问题,但无法提供一个简单的解决方案:)

假设我有一个字符串。我想检测是否有重复。

我想要:

"blablabla" # => (bla, 3)

"rablabla"  # => (bla, 2)

问题是我不知道我要搜索的模式(我没有“ bla”作为输入)。

任何想法?

编辑:
看到这些评论,我想我应该再精确一点:

  • 在字符串中,有重复的模式或没有重复的模式。
  • 重复的图案可以是任何长度。

如果有一个模式,它将一遍又一遍地重复直到结束。但是字符串可以在模式中间结束。

例:

"testblblblblb" # => ("bl",4)

问题答案:
import re
def repetitions(s):
   r = re.compile(r"(.+?)\1+")
   for match in r.finditer(s):
       yield (match.group(1), len(match.group(0))/len(match.group(1)))

使用最短的重复单位查找所有不重叠的重复匹配项:

>>> list(repetitions("blablabla"))
[('bla', 3)]
>>> list(repetitions("rablabla"))
[('abl', 2)]
>>> list(repetitions("aaaaa"))
[('a', 5)]
>>> list(repetitions("aaaaablablabla"))
[('a', 5), ('bla', 3)]


 类似资料:
  • 问题内容: 假设我有一个包含Ü的字符串。我将如何找到所有这些unicode字符?我应该测试他们的代码吗?我该怎么做? 例如,给定字符串“AÜXÜ”,我想将其转换为“ AYXY”。我想对其他unicode字符执行相同的操作,并且我不希望将它们存储在某种翻译图中。 问题答案: “ unicode字符”的定义含糊不清,但是将被视为表示标准ISO 8859字符集 未涵盖的UTF-8 字符。如果您的情况是这

  • 问题内容: 如果我有一个PHP字符串,如何有效地确定它是否至少包含一个非ASCII字符?所谓非ASCII字符,是指不属于此表的任何字符,http://www.asciitable.com/,其位置为32-126(含)。 因此,它不仅必须是ASCII表的一部分,而且还必须是可打印的。我想检测一个包含至少一个不符合这些规范的字符的字符串(不可打印的ASCII字符或完全不同的字符,例如不属于该表的Uni

  • 问题内容: 可以通过什么方式检测字符串中的重复单词? 例如,“这是重复测试的测试消息”包含一个重复单词测试。 在此,目标是检测出现在字符串中的所有重复单词。 使用正则表达式是实现目标的首选方法。 问题答案: 以下Java代码解决了从字符串中检测重复项的问题。如果重复的单词由换行符或标点符号分隔,则应该没有任何问题。 代码的输出将是: 在这里,m.group(1)语句表示与第一组模式匹配的字符串[这

  • 我有带有Reddit评论的BigQuery数据集。它有多个列,其中一个是包含实际注释的正文列。我现在想搜索某个单词,比如品牌,例如body列中的“BMW”,并在data$body中创建包含“BMW”的行的子集。 感谢charleslmh

  • 本文向大家介绍从PHP中的字符串检测语言,包括了从PHP中的字符串检测语言的使用技巧和注意事项,需要的朋友参考一下 无法从字符类型中检测到语言。还有其他方法,但不能保证完全准确性。'TextLanguageDetect梨包'可以正确使用。以下是相同的示例代码- 示例 输出结果 这将产生以下输出- 它易于使用,并具有52种语言数据库。但是不利的是,使用此软件包无法检测到东亚语言。

  • 问题内容: 有没有一种简单的方法来测试Python字符串“ xxxxABCDyyyy”,以查看其中是否包含“ ABCD”? 问题答案: if “ABCD” in “xxxxABCDyyyy”: # whatever