演算法6 最長公共字首

2021-10-19 08:46:07 字數 1929 閱讀 5853

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

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

示例 1:

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

輸出:「fl」

示例 2:

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

輸出:""

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

思路寫在注釋中,以下是兩個解法

public

class

wzwtest

;// string strs = ;

string publicprefix =

getpublicprefix

(strs)

; system.out.

println

("publicprefix = "

+ publicprefix)

; string publicprefixofficial =

getpublicprefixofficial

(strs)

; system.out.

println

("publicprefixofficial = "

+ publicprefixofficial)

;// 輸出:"fl"

}/**

* 解法1:這個思想就很好,採用了擷取的工具提高了效能

* 123 / 123 個通過測試用例

* 狀態:通過

* 執行用時: 1 ms

* 記憶體消耗: 36.4 mb

* @param strs

* @return

*/private

static string getpublicprefixofficial

(string[

] strs)

// 用來存字首

string prefix = strs[0]

;// 迴圈陣列

for(

int i =

1; i < strs.length; i++

)// 擷取相同字元

prefix = prefix.

substring(0

,count);}

return prefix;

}/**

* 解法2:自己寫的發現思維還是不夠,**還是使用的太少,在使用到一些常用的**時還是不會第一時間反應到用他

* 123 / 123 個通過測試用例

* 狀態:通過

* 執行用時: 11 ms

* 記憶體消耗: 38.7 mb

* @param strs

* @return

*/private

static string getpublicprefix

(string[

] strs)

// 計時器

int count =1;

// 符合比較過後的字首

string prefix ="";

int length = strs[0]

.length()

;for

(int j =

0;j< length;j++)if

(prefix.

length()

< length && strs[i]

.charat

(j)== strs[i +1]

.charat

(j))

}else}}

// 執行到這裡說明都相同,就放回字首即可

return prefix;}}

14367549.html

學習了最長公共字首演算法

發現自己思維還是很差

演算法興趣+1

演算法 最長公共字首

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

演算法 最長公共字首

題目描述 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 解題 使用分治法求解,找出左側...

最長公共字首

描述 給k個字串,求出他們的最長公共字首 lcp 樣例 在 abcd abef 和 acef 中,lcp 為 a 在 abcdefg abcefg abcefa 中,lcp 為 abc 新知識點 vectorstrs既可以是一維的,也可以是多維的。在這裡講解三維的初始化。vector str str...