Leetcode | C++ 14.Longest Common Prefix

博客介绍了如何使用C++解决LeetCode中的14题——寻找最长公共前缀。通过排序字符串并以最短字符串为基准逐字符比较,确定最长公共前缀。举例说明了算法过程,例如输入abc、abdc、abce,最长公共前缀为ab。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目分析

给我们一个vector,里面的元素全是string类型,让我们找到最长的公共前缀。

解题思路

首先我们来分析一下题目,要找到最长的公共前缀的意思,就是说,这个前缀,要在vector中的所有string串都要存在。

那么我们很容易想到先进行排序,答案最长也就是所有string串中最短的那个长度。

排序后,我们以最短的string串(第一个string)作为基准,每一个字符进行其他剩余串相同位置的判断,如果出现不在其中一个string串的时候,代表我们已经找到了最长公共前缀了

例子

举一个例子帮助理解算法。
vector中的string分别为abc、abdc、abce
首先进行排序后
我们可以得到为
abc、abce、abdc
判断第一个字符,都为a相同
进行下一步判断,全为b相同
进行下一个字符判断,c与d不同
则最终我们的最长公共前缀为ab

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        //先挑选最短的,然后按照这个,从后往前
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小夕Coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值