1.给出任意一个字符串,打印一个最长子串字符串及其长度,如果有相同长度的子字符串,都要一起打印出来,该子字符串满足以下条件,
第一个字母和最后一个字符是第一次重复
这个子字符串的中间字母没有重复
这个子字符串是满足条件里面的最长的
如:
adsasadmasd
中满足条件的是dmasd
import re
def maxsubstring(s):
res_list=[]
max_len=0
for i in range(len(s)):
index=s[i+1:].find(s[i])
if index !=-1:
find_str=s[i:i+index+2] #找出第一个字母和最后一个字母第一次重复的
if not re.findall(r'(w).*?(1)',find_str[1:-1]): #过滤掉中间重复的字母
if len(find_str)>max_len: #找出最长的字符串
max_len=len(find_str)
res_list=[]
res_list.append(find_str)
elif len(find_str)==max_len: #最长的字符串可能有多个
res_list.append(find_str)
else:
pass
return res_list
if __name__=="__main__":
s = 'adsasadmasd'
print(maxsubstring(s))