1. 程式人生 > >20190501-編寫一個函數來查找字符串數組中的最長公共前綴。如果不存在公共前綴,返回空字符串

20190501-編寫一個函數來查找字符串數組中的最長公共前綴。如果不存在公共前綴,返回空字符串

rac 基準 pan key type 最長 題目 long common

題目描述

編寫一個函數來查找字符串數組中的最長公共前綴。

如果不存在公共前綴,返回空字符串 ""。

示例 1:

輸入: ["flower","flow","flight"]

輸出: "fl"

示例 2:

輸入: ["dog","racecar","car"]

輸出: ""

解釋: 輸入不存在公共前綴。

考點

  1. 根據列表中的字符串長度排序
  2. 兩層for循環的使用,for|else的使用

算法

從下標0開始,判斷每一個字符串同一索引所對應的值,判斷是否全部相同。直到遇到不全部相同的時候return。

由於提供的單詞長度不同,應該以最小單詞為基準進行比較,如["flower","flow","flight"]中應該以flow來和剩下的單詞一一對比。

  1. 所有單詞同一索引所對應的值相等,則更新最長公共前綴
  2. 有一個單詞與其他單詞同一索引所對應的值不相等,則返回最後更新的最長公共前綴

代碼

def longestCommonPrefix(strs):
    """
    :type strs: List[str]
    :rtype: str
    """
    strs.sort(key =len)# 根據列表中的字符串長度排序
    result = ‘‘#記錄公共前綴
    for i in range(len(strs[0])):#以列表中長度最小的單詞為基準進行遍歷
        for
j in strs:#遍歷列表中的每個字符串 if j[i] != strs[0][i]:#如果列表中的字符串的對應下標是否相同 return result else: result += strs[0][i]#如果所有字符串下標都相同,更新最長公共前綴 return result

20190501-編寫一個函數來查找字符串數組中的最長公共前綴。如果不存在公共前綴,返回空字符串