演算法題 最長公共字首 LeetCode

2021-09-10 13:04:53 字數 2002 閱讀 5714

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

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

示例 1:

輸入: [「flower」,「flow」,「flight」]

輸出: 「fl」

示例 2:

輸入: [「dog」,「racecar」,「car」]

輸出: 「」

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

說明:

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

方法一:橫向掃瞄法

前兩個字串找公共子串,將其結果和第三個字串找公共子串……直到最後乙個串。

public static string longestcommonprefix(string strs) 

if(strs.length == 1)

string commonprefix = strs[0];

int commonprefixlen;

for(int i=1; i複雜度分析:

方法二:橫向掃瞄+二分查詢法

跟方法一相同,前兩個字串找公共子串,將其結果和第三個字串找公共子串……直到最後乙個串。但是在每兩個字串找公共子串時,用二分法。

public static string longestcommonprefix2(string strs)

if(strs.length == 1)

int high = strs[0].length();

int low = 0;

int middle;

for(int i=1; i複雜度分析:

方法三:縱向掃瞄法

從下標0開始,判斷每乙個字串的下標0,判斷是否全部相同。直到遇到不全部相同的下標。

**(略)

複雜度分析:

方法四:trie字典樹

字典樹又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。

它的優點是:利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。

}複雜度分析:

演算法題 最長公共字首

上禮拜五,同事給我拋了個問題,獲取最長的公眾字首。當時手上有幾個bug,大概看了看,想了想思路,不過沒有時間實現。禮拜天抽空就寫了一下,題目還是挺不錯的,記錄一下。q 最長公共字首 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,則返回 null 所有輸入只包含小寫字母 a z 例 ...

演算法題 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z related topics 字串 14...

演算法 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 輸入 flower flow flight 輸出 fl 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。class solution 對result擷取公共部分 result result.substr...