leetcode14——Longest Common Prefix

本文详细解析了求解字符串数组最长公共前缀的问题。通过分析特殊情况和比对过程,提供了一个简洁有效的C++实现方案。

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

题目大意:求出所给字符串数组的最长公共前缀

分析:字符串的考察。注意几点:

          1.特殊情况,数组为空,或只有一个字符串,就可以直接返回答案了

          2.以第一个字符串为基准,用指向它的指针去比对其余字符串,当指针到第一个字符串结尾时返回答案

          3.比对时要判断两个条件:第一个字符串的指针长度是否超出当前查看的字符串长度;字符是否相等

代码:

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        string common = "";
        if(strs.size() == 0) return common;
        if(strs.size() == 1) return strs[0];
        for(int i = 0;i < strs[0].size();i++){
            for(int j = 1;j < strs.size();j++){
                if(strs[j].size() - 1 < i || strs[j][i] != strs[0][i]) 
                    return common;
            }
            common += strs[0][i];
        }
        return common;
    }
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值