編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 「」。
示例 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...