[100天每天一個算法--第11天] 最長公共前綴

問題描述:
編寫一個函數來查找字符串數組中的最長公共前綴。
如果不存在公共前綴,返回空字符串 “”。
示例 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]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章