2024-04-27 03:09:36 发布
网友
在使用所有字符的同时,如何将一个普通字符串拆分成尽可能多的相同片段。例如
a = "abab"
将返回"ab",而
"ab"
它将返回"ababc",因为不能使用所有字母将其拆分为相同的部分。在
"ababc"
重复子串似乎没有前后字母,所以也可以这样:
In[4]: re.sub(r'^([a-z]+)\1$',r'\1','abab') Out[4]: 'ab' In[5]: re.sub(r'^([a-z]+)\1$',r'\1','ababc') Out[5]: 'ababc'
([a-z]+)表示子串,1表示重复。在
编辑:
这与How can I tell if a string repeats itself in Python?非常相似,但不完全相同,不同之处在于,该问题只要求确定字符串是否由相同的重复子字符串组成,而不是确定重复子字符串(如果有)是什么。在
对于该问题,接受的(以及目前正在执行的best)answer可以调整为返回重复字符串(如果存在):
def repeater(s): i = (s+s)[1:-1].find(s) if i == -1: return s else: return s[:i+1]
示例:
重复子串似乎没有前后字母,所以也可以这样:
([a-z]+)表示子串,1表示重复。在
编辑:
^{pr2}$这与How can I tell if a string repeats itself in Python?非常相似,但不完全相同,不同之处在于,该问题只要求确定字符串是否由相同的重复子字符串组成,而不是确定重复子字符串(如果有)是什么。在
对于该问题,接受的(以及目前正在执行的best)answer可以调整为返回重复字符串(如果存在):
示例:
^{pr2}$相关问题 更多 >
编程相关推荐