python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串...
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))
轉載于:https://www.cnblogs.com/reyinever/p/10134704.html
總結
以上是生活随笔為你收集整理的python字符串面试题:找出一个字符串中第一个字母和最后一个字符是第一次重复,中间没有重复且最长的子串...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wpf中xaml的类型转换器与标记扩展
- 下一篇: bzoj 1004: [HNOI2008