LeetCode刷题之14.最长公共前缀

LeetCode刷题之14.最长公共前缀

我不知道将去向何方,但我已在路上!
时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 !
  • 题目
    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。
  • 示例
示例1:
输入: ["flower","flow","flight"]
输出: "fl"
示例2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
  • 说明:
    所有输入只包含小写字母a-z。
  • 代码:
class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if len(strs) == 1:
            return(strs[0])
        if len(strs) == 0 :
            return("")
        a = 0
        for i in range(len(min(strs, key=len))):
            for j in range(0,len(strs)):
                if strs[j][i] != strs[0][i]:
                    return(strs[0][:a])
            a += 1
        return strs[0][:a]
# 执行用时 :56 ms, 在所有 Python3 提交中击败了51.00%的用户
# 内存消耗 :14 MB, 在所有 Python3 提交中击败了5.53%的用户
  • 算法说明:
    首先除去只有0个元素和1个元素的情况;求出所有元素的最小长度i,作为外面一层的循环,表示第j个元素第i位置值;求出strs的所有元素的个数j,做为里层的循环,在元素之间进行遍历;用a作为计数值,直接和第一个元素的i位置的值进行比较,如果遇到不同的元素直接返回第一个元素中长度为a的元素,即strs[0][:a];如果所有元素相同,a的值+1,继续循环,直至结束。
发布了90 篇原创文章 · 获赞 1 · 访问量 1053

猜你喜欢

转载自blog.csdn.net/qq_34331113/article/details/102560026