# leetcode #5:14- Longest Common Prefix 給一些字串(list),找出前緣最大公共字串 字串數、各自字母數不超過200,字母都是小寫 空白或沒有公共字串就輸出"" ## 思考 先字少排到字多,答案一定包含在字最少的字裡面(索引0的字),用這個字跟其他後面的字比較,如果有不一樣的話,就輸出到不一樣之前的字串;如果都涵蓋的話就輸出這個索引0的字,如果全空就輸出““,如果只有一個字就輸入這個字 *list的索引是字串、字串的索引是某個英文字 ``` class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if strs == []: return "" if len(strs) == 1: return strs[0] strs = sorted(strs, key=len) a= strs[0] l= len(a) for i in range(l): for k in strs: if k[i] != a[i]: return a[0:i] return a ``` ## 檢討與複習 1. AC之前有兩次錯誤,第一次沒有注意到全空白的情況,第二次沒有注意到如果索引0沒有因為比較而減少,索引0就是答案 2. list的索引是字串、字串的索引是某個英文字 3. sort/sorted 排序  list名稱.sort() :將此list排序並更新(只能用在list)  新名稱 = sorted(原名稱):將list(或其他資料)排序,以新名稱輸出  括號裡面可以寫reverse = False(預設)/ True 代表是否反序  key = 排列依據(預設:字串依照字典ACSII碼;數字依照大小)  其他key例如 key = len(依照字串長度)  key = lambda 任意新變數:任意新變數[k] 可以將裡面每個元素的第k個字來比較  若要sort index 例如a=[2,3,1,4,9] b = sorted(range(len(s)), key= lambda k:a[k]) sort [0,1,2,3,4] 依照a的情況 ###### tags: `python` `leetcode`