編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串 「」。
示例 1:
輸入: [「flower」,「flow」,「flight」]示例 2:輸出: 「fl」
輸入: [「dog」,「racecar」,「car」]輸出: 「」
解釋: 輸入不存在公共字首。
說明:思路 1:所有輸入只包含小寫字母 a-z 。
python 特性,取每乙個單詞的同一位置的字母,看是否相同。
class
solution
:def
longestcommonprefix
(self, strs)
:"""
:type strs: list[str]
:rtype: str
"""res =
""for tmp in
zip(
*strs)
: tmp_set =
set(tmp)
iflen
(tmp_set)==1
: res += tmp[0]
else
:break
return res
思路 2:
取乙個單詞 s,和後面單詞比較,看 s 與每個單詞相同的最長字首是多少!遍歷所有單詞
class
solution
:def
longestcommonprefix
(self, s: list[
str])-
>
str:
ifnot s:
return
"" res = s[0]
i =1while i <
len(s)
:while s[i]
.find(res)!=0
: res = res[0:
len(res)-1
] i +=
1return res
思路 3:
按字典排序陣列,比較第乙個,和最後乙個單詞,有多少字首相同。
class
solution
:def
longestcommonprefix
(self, s: list[
str])-
>
str:
ifnot s:
return
"" s.sort(
) n =
len(s)
a = s[0]
b = s[n-1]
res =
""for i in
range
(len
(a))
:if i <
len(b)
and a[i]
== b[i]
: res += a[i]
else
:break
return res
LeetCode14最長公共字首
編寫乙個函式來查詢字串陣列中最長的公共字首字串。例如 輸出 ab 比較乙個字串陣列的最長公共字首,遍歷整個字串陣列,建立乙個字串用來儲存當前最長公共字串,逐個比較,不斷更新公共字串內容。情況比較多,考慮周全,不然可能會陣列溢位。公共字串的長度和當前比較字串的長度大小的比較,避免陣列越界,還有空字串的...
LeetCode 14 最長公共字首
編寫乙個函式來查詢字串陣列中最長的公共字首字串。用第乙個字串s,比較strs的每個字串的公共字首,並記錄字首有m位,之後輸出s的前m位字元即可。但是在輸出過程中,使用了如下的賦值方式 for int i 0 i m i ans i s i 在string型別中,內部的成員是private的,所以不能...
LeetCode14 最長公共字首
題目描述 編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母a z。如下 class solutio...