問題描述:
編寫一個函數來查找字符串數組中的最長公共前綴。
如果不存在公共前綴,返回空字符串 “”。
示例 1:
輸入: [“flower”,“flow”,“flight”]
輸出: “fl”
示例 2:
輸入: [“dog”,“racecar”,“car”]
輸出: “”
解釋: 輸入不存在公共前綴。
說明:
所有輸入只包含小寫字母 a-z 。
思路:以列表第一個元素爲主,採用縱向掃描(即從第一個字符開始比較所有的字符,直到遇到不同字符返回結果)
解法如下:
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs)== 0:
return ''
for i in range(len(strs[0])):
for x in range(1,len(strs)):
try:#針對['aa','a']輸入加的異常處理,避免字符串下標超出報錯
if strs[x][i] != strs[0][i]:
return strs[0][0:i]
except IndexError:
return strs[0][0:i]
return strs[0]