LeetCode 字符串-最长公共前缀

xiaoxiao2021-04-16  44

最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 “”。

示例 1:

输入: ["flower","flow","flight"] 输出: "fl"

示例 2:

输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。

说明: 所有输入只包含小写字母 a-z 。

Python: 我的做法 思路: 1.找出最短的字符串 2.根据最短的字符串长度进行while循环 遍历数组中每个str 3.把每个 str 中下标为 i 的字母放到set 中,set 长度为1 说明当前 i 位置,str 的字母 一样,把i 位置的字母放到res 中返回 4.执行用时:28 ms

def longestCommonPrefix(self, strs): """ :type strs: List[str] :rtype: str """ if len(strs) == 0: return "" if len(strs) == 1: return strs[0] if len(set(strs)) == 1: return strs[0] short_word = min(strs,key=len) i = 0 res = "" while i < len(short_word): char_list = [] for word in strs: char_list.append(word[i]) if len(set(char_list)) == 1 and len(res) == i: res += word[i] i += 1 return res

两层 for 循环也可以找出来 两种效率差不多

if len(strs) == 0: return "" if len(strs) == 1: return strs[0] if len(set(strs)) == 1: return strs[0] short_word = min(strs,key=len) strs.remove(short_word) for i,char in enumerate(short_word): for other in strs: if char != other[i]: return short_word[:i] pass return short_word
转载请注明原文地址: https://www.6miu.com/read-4818096.html

最新回复(0)