Longest Common Prefix
最長相同前綴:給定一個字符串數組,找出其中最長的共同前綴。這裏leetcode並沒有說明共同前綴是指兩兩之間的前綴還是所有字符串的前綴,實際題意是指採用所有字符串的共同前綴。
Description
解題思路:
若字符串數組爲空則返回空字符串;
否則從所有字符串中找出最短的字符串,依次將最短字符串的每個元素和所有字符串對應位置上的元素進行比較,若不同則停止比較並返回;
若全部相同,則返回最短字符串。
if not strs:
return ""
shortest = min(strs, key=len)
for i in range(len(shortest)):
for string in strs:
if shortest[i] != string[i]:
return shortest[:i]
return shortest
改進:
將字符串數組進行排序(注意,這裏是按照字母表順序排序,而不是根據長度排序),排序後實際只要比較第一個和最後一個字符串的共同前綴即可,因此大大提升了運行時間。
if not strs:
return ""
strs.sort()
first = strs[0]
last = strs[-1]
minlen = min(len(first), len(last))
for i in range(minlen):
if first[i]!=last[i]:
return first[:i]
return first[:minlen]