Leetcode Longest Common Prefix Python 集合内对比字符串,找到相同元素。

本文详细解析了LeetCode第14题“LongestCommonPrefix”的解决方案,通过比较字符串数组中所有单词的前缀来找出最长公共前缀。代码使用Python实现,首先对字符串数组进行排序,然后通过对比首尾字符串的前缀来确定最长公共前缀。
摘要由CSDN通过智能技术生成

Leetcode 14题 Longest Common Prefix
Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string “”.

Example 1:
Input: ["flower","flow","flight"]
Output: "fl"

Example 2:
Input: ["dog","racecar","car"]
Output: ""

Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z.


题目大意: 给出一些单词,找出这些单词相同的前缀字符。

一开始思考的粒度太大了,没有想到其实单词中的字母也可以索引。
例如:

strs = ["flower","flow","flight"]
strs[0] 就是 “flower”
而strs[0][0]就是“flower”中的“f”

所以直接比较即可,上代码。这个代码思路还是很清晰的。

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        if len(strs) == 0: return ""
        strs.sort() #排序会把相同的按长度排在一起。
        size = min(len(strs[0]),len(strs[-1])) #相同前缀最多超不过最小的单词的长度。
        i = 0
        while i < size and strs[0][i] == strs[-1][i]:
            i += 1
        return strs[0][:i] #返回相同的值。 [:i]即从0到i。

15/04/2020
疫情中的英国,
加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值