最長公共字首

tw_nlp發表於2024-05-24

編寫一個函式來查詢字串陣列中的最長公共字首。

如果不存在公共字首,返回空字串 ""

示例 1:

輸入:strs = ["flower","flow","flight"]
輸出:"fl"

示例 2:

輸入:strs = ["dog","racecar","car"]
輸出:""
解釋:輸入不存在公共字首。


程式碼如下:
class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:

        pub_str = ""

        tmp_list = []
        min_len = min(len(i) for i in strs)
        # 逐個遍歷 
        for epoch_i in range(min_len):
            for str_i in strs:
                tmp_list.append(str_i[epoch_i])
            # 用set來去重,如果相同元素,pub_str追加
            if len(list(set(tmp_list))) == 1:
                pub_str += tmp_list[0]
                tmp_list = []
        return pub_str

時間複雜度O(n2)

空間複雜度O(n)

備註:後面最佳化

相關文章