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