# Leetcode 14 Array & string longest common prefix My Solution O(strs[0]字串長 * 總字串數) --- ``` def longestCommonPrefix(self, strs:[str]): # 概念為將每個單字拆開如果 string 的 index 第一個字元對得起來即往下一個字元比對 ans ="" length = len(strs) # 1.以strs[0]中的string 字元當作主key 去訪問strs 的每個string # 2.每一次皆要比對strs中的每個string 1~length-1 # 3.用j當作計算相同次數 如果符合條件即放入ans if not strs: return "" for index in range(len(strs[0])): j = 0 char = strs[0][index] # 查詢字元 for string_index in range(1,length): if index < len(strs[string_index]): if char == strs[string_index][index]: j+=1 if j == length-1: # 代表符合條件 ans+=char else: # 提早跳出 break return ans ``` Best Solution O(單一字串長 * 總字串數) --- def longestCommonPrefix(self, strs: 'List[str]') -> 'str': # 排序最大和排序最小在某個index字元相同時, 即代表著中間其他字串在此index字元亦相同 if not strs: return "" s1 = min(strs) s2 = max(strs) print(s1) print(s2) for i, c in enumerate(s1): if c != s2[i]: return s1[:i] return s1 ###### tags: `LeetCode` `string` `array`