题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串
""
。来源:力扣(LeetCode)
链接:力扣
示例:
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:输入:strs = ["dog","racecar","car"]
输出:""解释:输入不存在公共前缀。
解法:
设返回值为s,初值为空。首先根据元素长度对列表升序排序,接着对特殊情况处理,如果第1个元素为空,返回空,如果列表长度为1,返回第1个元素,否则进入程序。遍历列表第1个元素(外层循环),获得字符(letter)和下标(index),判断列表后面每个元素(word)中前缀(word[index])是否为letter(内层循环),如果不是,返回s,如果都含有,则s+=letter。
代码:
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: s = '' strs.sort(key=len) if (t := strs[0]) == '': return s elif len(strs) == 1: return t else: for index, letter in enumerate(t): for word in strs[1:]: if word[index] != letter: return s s += letter return s