我是python的新手,我想编写一个程序来确定字符串是否包含重复的字符。我想测试的字符串列表是:
我提出的伪代码:
WHEN len(str) % 2 with zero remainder:
- Divide the string into two sub-strings.
- Then, compare the two sub-strings and check if they have the same characters, or not.
- if the two sub-strings are not the same, divide the string into three sub-strings and compare them to check if repetition occurs.
我不确定这是否适用于解决问题的方法,任何想法如何解决这个问题?
谢谢!
答案 0 :(得分:1)
您可以使用计数器库来计算最常见的字符数。
>>> from collections import Counter
>>> s = 'abcaaada'
>>> c = Counter(s)
>>> c.most_common()
[('a', 5), ('c', 1), ('b', 1), ('d', 1)]
获得单个最重复(常见)字符:
>>> c.most_common(1)
[('a', 5)]
答案 1 :(得分:0)
您可以使用RegX backreferences。
执行此操作答案 2 :(得分:0)
要在Python中查找模式,您需要使用“正则表达式”。正则表达式通常写为:
match = re.search(pat, str)
这通常后跟一个if语句来确定搜索是否成功。
例如,您可以在字符串中找到“AAAA”模式:
import re
string = ' blah blahAAAA this is an example'
match = re.search(r'AAAA', string)
if match:
print 'found', match.group()
else:
print 'did not find'
这会返回“找到'AAAA'”
对其他两个字符串执行相同的操作,它的工作方式相同。 正则表达式可以做的不仅仅是这个,所以要解决它们并看看它们还能做些什么。
答案 3 :(得分:0)
假设您的意思是整个字符串是重复模式,this answer有一个很好的解决方案:
def principal_period(s):
i = (s+s).find(s, 1, -1)
return None if i == -1 else s[:i]