力扣最長公共字首理解

2021-10-10 11:06:05 字數 853 閱讀 4941

注意直觀上想應該是構建乙個準備最後返回的指標,然後這個指標指向的陣列的長度取決於字串陣列中最短的那個字串的長度,但是這樣會很麻煩,所以不妨直接對原陣列操作。

即由於返回的公共部分是每乙個元素即每乙個字串都共有的,所以不妨直接取strs[0] 操作,即找到strs公共部分後給strs[0]這個字串加上『\0』,因為字串以\0結尾,所以這樣就表示了這個字串的結束位置,即我們新構建的最後返回的公共字首的陣列就由第乙個構建而成了。

且這樣的話也不用找那個最短字串的長度了,因為在用第乙個strs[0]這個字串時,他要麼本身就是那個最短字串,要麼其不是最短字串。而一旦當不是最短字串時,由於他的長度一定足夠容納我們要返回的公共字首長度,所以在通過給他結尾處即無公共部分後加上『\0』的操作,可以使得他的長度「變為」我們要的那個最長公共字首長度。

注意!!由於此均為字串,所以要謹記字串末尾是有乙個\0的,所以這裡求字串長度不能用sizeof,應該用strlen,其不會求\0.

且因為此均為字串,所以如果要構建陣列的話一定要記得你構建的陣列的長度一定要比實際字串長度大1,因為多的1個用來存放『\0』。

char

*longestcommonprefix

(char

** strs,

int strssize)

//如果字串陣列為空,直接返回""

for(

int i=

0;i<

strlen

(strs[0]

);i++)}

}return strs[0]

;//此為全部相同且strs[0]本身又是最短字串的情況,所以正好返回他自己。

}*

最長公共字首(力扣)

2020.10.13繼續堅持每天一道演算法題,從簡單到難題,一步乙個腳印,腳踏實地,希望每天都如此,今天的題目是最長公共字首,開始沒有懂,自己有查了一遍zip 函式,這個函式在python中好用下面讓我們先來看看題把 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 ...

力扣之最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 我的思路是取陣列第一項為最初的值,然後和其他的各項進行,比較,然後得出公共字首。var longestcommonprefix function strs else common common.substr 0,j if c...

力扣14 最長公共字首。

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。1 思路 2 標籤 鍊錶 3 當字串陣列長度為 0 時則公共字首為空,直接返回...