1. 程式人生 > >找出字串最長不重複子串(或者是列表)

找出字串最長不重複子串(或者是列表)

# 找出來一個字串中最長不重複子串
def find_Maxlen_Son_list(astr):
maxlen = 0 定義最長字串的初始長度//
dict = {}
list1 = []
for i in range(0,len(astr)):
str2 = ''
for j in range(i,len(astr)):
if astr[j] not in str2:
str2 += astr[j]
else:
break
# 將不重複字串放到字典裡

dict[str2] = len(str2)
if len(str2) > maxlen:
maxlen = len(str2)

# 找出最長字串的列表
for a in dict.keys():
if dict[a] == maxlen:
list1.append(a)
return list1

if __name__ == '__main__':
str1 = input("請輸入要運算的字串:")
a = find_Maxlen_Son_list(str1)
print(a)



結果:

請輸入要運算的字串:abcacf

           ['abc', 'bca', 'acf']