本文实例讲述了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