侧边栏壁纸
博主头像
半生瓜のblog

THIS IS NO END.

  • 累计撰写 278 篇文章
  • 累计创建 3 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

【LeetCode】LeetCode刷题(12)【简单】最长公共前缀(C++)

xuanxuan
2021-08-18 / 0 评论 / 0 点赞 / 3 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于2024-02-14,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

最长公共前缀

题目链接——最长公共前缀 在这里插入图片描述

代码示例:

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
       //容器为空
       if(strs.size() == 0)
       {
           return "";
       }

       for (int i = 0; i < strs[0].size(); i++) 
       {
            char ch = strs[0][i];
            for (int j = 1; j < strs.size();j++) 
            {
                if (strs[j][i] != ch || i > strs[j].size()) 
                {
                    return strs[0].substr(0, i);
                }
            }
        }
        //全都一样
        return strs[0];
    }
};

题解:

垂直比较。
如果容器为空,返回“”

不为空
以容器中第一个字符串为标准,将它的每个字母和容器中其它字符串的每一个字母做比较,
如果不同或者此时遍历的长度i,已经大于了其他某个字符串的长度,
那么直接返回第一个字符串截取到上一个i,这么长。
substr截取区间为左闭右开。

容器中字符串全都相等,或者只有一个元素
返回本身(第一个字符串)。
0

评论区