編寫乙個函式來查詢字串陣列中的最長公共字首。
如果不存在公共字首,返回空字串""
。
示例 1:
輸入:["flower","flow","flight"]輸出:"fl"示例 2:
輸入:["dog","racecar","car"]輸出:""解釋:輸入不存在公共字首。說明:
所有輸入只包含小寫字母a-z
。
各種考慮不全,提交了好多次。
執行用時 : 56 ms, 在longest common prefix的python3提交中擊敗了71.73%的使用者
記憶體消耗 : 13.1 mb, 在longest common prefix的python3提交中擊敗了92.30% 的使用者
class solution:
def longestcommonprefix(self, strs):
res = ""
if not strs:
return ""
if len(strs) == 1 and len(strs[0])!=0:
return strs[0][0]
else:
minlen = min(strs,key=len)
strs.remove(minlen)
#print(strs)
for i in range(len(minlen)):
tmp =
for j in strs:
flag = list(set(tmp))
if len(flag) == 1:
if minlen[i] == flag[0]:
res += minlen[i]
else:
break
else:
break
return res
s = solution()
res = s.longestcommonprefix(["flower","flow","flight"])
print(res)
思路二:
利用python的max()和min(),在python裡字串是可以比較的,按照ascii值排,舉例abb, aba,abac,最大為abb,最小為aba。所以只需要比較最大最小的公共字首就是整個陣列的公共字首。
def longestcommonprefix(self, strs):
if not strs: return ""
s1 = min(strs)
s2 = max(strs)
for i,x in enumerate(s1):
if x != s2[i]:
return s2[:i]
return s1
力扣日記 014 最長公共字首
編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例 1 輸入 flower flow flight 輸出 fl 示例 2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。說明 所有輸入只包含小寫字母 a z 先說一句題外話,力扣裡這道題標註是 簡單...
最長公共字首 LeetCode
編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例1 輸入 flower flow flight 輸出 fl 示例1 輸入 dog rececar car 輸出 說明 所有輸入只包含小寫字母 a z。首先找到長度最小的字串 minstring,假設此字串為公共字首,依次...
leetcode 最長公共字首
題目 編寫乙個函式來查詢字串陣列中的最長公共字首,如果不存在公公字首,則返回空字串 示例 輸入 flower flow flight 輸出 fl 輸入 dog racecar car 輸出 思路 第一步 令乙個變數等於其中乙個 的首字母,依次看後面的字串是否也有,若沒有跳出整層迴圈,若有計入陣列中 ...