編寫一個函數(shù)來查找字符串?dāng)?shù)組中的最長公共前綴馁痴。
如果不存在公共前綴罗晕,返回空字符串 ""赠堵。
示例 1:
輸入: ["flower","flow","flight"]
輸出: "fl"
示例 2:
輸入: ["dog","racecar","car"]
輸出: ""
解釋: 輸入不存在公共前綴。
說明:
所有輸入只包含小寫字母 a-z 酬屉。
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if not len(strs):
return ''
m = len(strs[0])
re = ''
for i in range(1,len(strs)):
t = cmpn(strs[0],strs[i])
if t < m:
m = t
if not m:
return ''
for i in range(m):
re += strs[0][i]
return re
def cmpn(s1, s2):
n1 = len(s1)
n2 = len(s2)
if n1 == 0 or n2 == 0:
return 0
n = 0
if n1 > n2:
n = n2
else:
n = n1
for i in range(n):
if s1[i] != s2[i]:
return i
return i + 1
思路:寫一個字符串比較函數(shù)(cmpn),并返回最大相同長度莽囤,然后用第一個字符串循環(huán)和后面的字符串進(jìn)行比較朽缎,找到他們最長公共前綴蔚舀。注意輸入為空锨络,和第一個字符串為空等情況羡儿。