本文实例讲述了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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
class Solution: def longestCommonPrefix( self , strs): """ :type strs: List[str] :rtype: str """ olds = '' rs = '' if not strs: return '' if len (strs) = = 1 : return strs[ 0 ] over = False print ( "strs_len:" , len (strs)) i = 0 # 单个字符的索引 while True : j = 0 # strs中字符串的索引 while j < len (strs) - 1 : if not strs[j] or not strs[j + 1 ]: # 若是空串 break #print("s1:",len(strs[j]), " s2:", len(strs[j+1])) if i > = len (strs[j]): # 如果一个子串比较完了,则结束循环 over = True break elif i > = len (strs[j + 1 ]): j + = 1 over = True break else : over = False #print("j:",j,"i: ",i) if strs[j][i] ! = strs[j + 1 ][i]: break j + = 1 #print("j2:",j) if not over and j! = ( len (strs) - 1 ): # 如果没有比较到最后,说明前面出现了不相等的子串 break #print("j:",j,"i: ",i) if over: # 如果一个子串已经比较结束,结束循环 rs = strs[j] break i + = 1 rs = strs[ 0 ][:i] print ( "rs:" ,rs) return rs |
我实现的方法,相当笨,后来通过测试后,我发现原来系统中有现成的接口是现实这个功能,如下:
1
|
os.path.commonprefix( list ) |
返回list中,所有元素共有的最长的前缀
希望本文所述对大家Python程序设计有所帮助。
原文链接:https://blog.csdn.net/TravisT/article/details/79936130