python - 最長字首
阿新 • • 發佈:2018-12-21
編寫一個函式來查詢字串陣列中的最長公共字首
如果不存在最長公共字首,返回空字串 ‘’
示例 1:
輸入: [“flower”,”flow”,”flight”]
輸出: “fl”
示例 2:
輸入: [“dog”,”racecar”,”car”]
輸出: “”
解釋: 輸入不存在最長公共字首
說明:所有輸入只包含小寫字母 a-z
因為沒有想到好方法,這裡用了一個取巧的方法,如果多加單詞則需要增加變數。
a,b,c = ['flower', 'flow', 'flight'] # a,b,c = ['dog','racecar','car'] def start(d,e,f): for k,v,s in zip(d,e,f): if k==v and v==s: print(k,end='') else: print(' ',end='') start(a,b,c)
方法二:
老師講的一種方法。
def solution(strs): # 如果strs為空,返回空字串 if not strs: return '' # 找出最長公共字首,只需要對比最長的字串和最短的字串 s1 = min(strs) # 根據ASCII碼來排序的,這裡需要自己理解,最大的ASCII包含最小的。 s2 = max(strs) for i, c in enumerate(s1): # 遍歷最短的字串,i為計數器,c為s1的字母 if c != s2[i]: # 如果字母和s2中某次不相等則返回s1,到i-1結束 return s1[:i] return s1 print(solution(['flower', 'flow', 'flight']))