方案一:
水平扫描法
先求出所有字符串长度最小值min_len,最长公共前缀的长度肯定小于等于min_len。对于第一个字符串的前min_len个字符,依次取出每位字符与其他所有的字符串对应位上的字符进行比较,直到出现不相等就结束。
class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
char=""
strs.sort(key=len)
if len(strs) == 0 or strs[0]=="":
return char
m=len(strs[0])
for i in range(m):
for j in range(1,len(strs)):
if strs[0][i] != strs[j][i]:
return char
char+=strs[0][i]
return char
# for i in range(min_len): #遍历首个字符串前min_len个字符
# for j in range(1,len(strs)): #列表遍历
# if strs[j][i] != strs[0][i]:
# return result #各个字符串第i个字符不相等,直接输出前i个字符
# result += strs[0][i] #列表遍历完,表示各个字符串第i个字符相等,将第i个字符加入到结果中。
# return result
转载:https://blog.csdn.net/qq_42278240/article/details/96825483