LeetCode 最長公共字首

2021-09-20 18:49:31 字數 2227 閱讀 1744

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

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

示例 1:

輸入: ["flower","flow","flight"]

輸出: "fl"

示例 2:

輸入: ["dog","racecar","car"]

輸出: ""

解釋: 輸入不存在公共字首。

說明:所有輸入只包含小寫字母 a-z 。

大概有這五種思路, 一般都會採用第四種, 但是耗時太多

1、所求的最長公共字首子串一定是每個字串的字首子串。所以隨便選擇乙個字串作為標準,把它的字首串,與其他所有字串進行判斷,看是否是它們所有人的字首子串。這裡的時間效能是o(mnm)。

2、列出所有的字串的字首子串,將它們合併後排序,找出其中個數為n且最長的子串。時間效能為o(nm+mnlog(mn))

3、縱向掃瞄:從下標0開始,判斷每乙個字串的下標0,判斷是否全部相同。直到遇到不全部相同的下標。時間效能為o(nm)。

4、橫向掃瞄:前兩個字串找公共子串,將其結果和第三個字串找公共子串……直到最後乙個串。時間效能為o(nm)。

5、借助trie字典樹。將這些字串儲存到trie樹中。那麼trie樹的第乙個分叉口之前的單分支樹的就是所求。

利用python的zip函式,把str看成list然後把輸入看成二維陣列,左對齊縱向壓縮,然後把每項利用集合去重,之後遍歷list中找到元素長度大於1之前的就是公共字首

最長公共字首 LeetCode

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例1 輸入 flower flow flight 輸出 fl 示例1 輸入 dog rececar car 輸出 說明 所有輸入只包含小寫字母 a z。首先找到長度最小的字串 minstring,假設此字串為公共字首,依次...

leetcode 最長公共字首

題目 編寫乙個函式來查詢字串陣列中的最長公共字首,如果不存在公公字首,則返回空字串 示例 輸入 flower flow flight 輸出 fl 輸入 dog racecar car 輸出 思路 第一步 令乙個變數等於其中乙個 的首字母,依次看後面的字串是否也有,若沒有跳出整層迴圈,若有計入陣列中 ...

leetcode 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。var longestcommonprefix function strs s...