L14 最長公共字首

2021-10-06 15:40:09 字數 1444 閱讀 2238

最長公共字首

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

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

示例 1:

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

輸出: 「fl」

示例 2:

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

輸出: 「」

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

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

1.自己的方法,注意防止越界

class

solution}if

(flag ==

false

)break;}

return strs[0]

.substring(0

, i);}

}

2.分治法,就歸併演算法也是用到分治法的思想

也就是先求出左邊一般的結果,再求出右邊一半的結果,最後二者合併即可

class

solution

string find

(string[

] strs,

int left,

int right)

} string merge

(string s1, string s2)

return s1.

substring(0

, i);}

}

其實遞推邊界不那樣寫也是沒有關係的

class

solution

string find

(string[

] strs,

int left,

int right)

string merge

(string s1, string s2)

return s1.

substring(0

, i);}

}

3.二分查詢法

對字首長度進行二分查詢,長度是滿足線性關係的

class

solution

int low =

0, high = min;

//注意high取的是當前位的後一位

while

(low <= high)

else

}return strs[0]

.substring(0

,(low + high)/2

);//注意一下,因為不確定是left,right直接取二者平均值即可

}boolean

judge

(string[

] strs,

int right)

return

true;}

}

14 最長公共字首

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

14 最長公共字首

分析 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 輸入 flower flow flight 輸出 fl 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。當字串陣列為空或者字串陣列中有空串時,不存在公共字首 當字串陣列只有乙個元素時,公共字首就是...

14 最長公共字首

編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 思路一 先找到陣列中最短元素,最長公共子串不會超過最短元素 對第乙個元素迭代分割,分割後的子串用於迭代比較是否相同。class solution if str...