本文实例讲述了Python简单实现查找一个字符串中最长不重复子串的方法。分享给大家供大家参考,具体如下:
刚结束的一个笔试题,很简单,不多说简单贴一下具体的实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:找出来一个字符串中最长不重复子串
'''
def find_longest_no_repeat_substr(one_str):
'''''
找出来一个字符串中最长不重复子串
'''
res_list = []
length = len (one_str)
for i in range (length):
tmp = one_str[i]
for j in range (i + 1 , length):
if one_str[j] not in tmp:
tmp + = one_str[j]
else :
break
res_list.append(tmp)
res_list.sort( lambda x,y: cmp ( len (x), len (y)))
return res_list[ - 1 ]
if __name__ = = '__main__' :
one_str_list = [ '120135435' , 'abdfkjkgdok' , '123456780423349' ]
for one_str in one_str_list:
res = find_longest_no_repeat_substr(one_str)
print '{0}最长非重复子串为:{1}' . format (one_str, res)
|
结果如下:
120135435最长非重复子串为:201354
abdfkjkgdok最长非重复子串为:abdfkj
123456780423349最长非重复子串为:123456780
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/together_cz/article/details/77533121