lintcode python ——最長公共字首(LCP)
阿新 • • 發佈:2019-01-21
問題描述:給k個字串,求出他們的最長公共字首(LCP)
樣例
在 "ABCD" "ABEF" 和 "ACEF" 中, LCP 為 "A"
在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 為 "ABC"
class Solution: def longestCommonPrefix(self, strs): n = 0 p = [] k = len(strs) if k == 0: #排除strs為空的情況 return "" l2 = [] for v in strs: l2.append(len(v)) #轉化為長度列表並儲存 m = min(l2) if m == 0: #排除單個字串為空的情況 return "" while(True): l = [] z = [] for i in range(k): l.append(strs[i][n]) z.append(1) l1 = zip(l,z) d = dict(l1) #轉化為字典,合併相同字元 if(len(d) == 1):#如果字典長度為1,說明字首相同 n = n + 1 p.append(l[0]) else: t = ''.join(p) #連線字元 return t if n == m: t = ''.join(p) return t