方法一:
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if not strs: return "" # 例子:strs = ["flower", "flow", "flight"] # strs[0] 指的是 "flower",以"flower"为基准 for i in range(len(strs[0])): # 从第二个数开始于第一个数比较 for string in strs[1:]: # 先看 string[i] != strs[0][i]: # 判断string[i]对应的字母是否与 基准对应的字母 相同 # 如果不同就返回 基准 的前i个字母 # i >= len(string):防止后面的字母长度比基准的长度短 # "flow"的长度比"flower"短 if i >= len(string) or string[i] != strs[0][i]: return strs[0][:i] # 如果输入的是[""],输出的是 "" return strs[0]
方法二:
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: result = ‘‘ i = 0 while True: try: # set()会去重复 # strs = ["flower","flow","flight"] # i = 0时,sets中存放{‘f‘},判断stes长度为1,表明是公共字母 # i = 2时,sets中存放{‘o‘,‘i‘},长度为2,表明没有公共字母 sets = set(string[i] for string in strs) if len(sets) == 1: result += sets.pop() i += 1 else: break except Exception as e: break return result
原文:https://www.cnblogs.com/WJZheng/p/11389080.html