leetcode 14.最长公共前缀

算法思路:

本题我的心得是不用观察中间状态,即不需要每一步都判断当前是否是公共前缀。只需要在第一次出现不是公共前缀时他的上一个状态就一定是最长公共前缀。同时我们也无需取最短字符串,只需要在遍历时多加一个长度判断即可,即如果当前遍历到的第j列中j等于某个字符串的长度,那么就可判断此时已经到这个字符串最后一位也直接返回即可。于是代码如下:

cpp 复制代码
class Solution {
public:
//第一次不同前的就是最长公共前缀
    string longestCommonPrefix(vector<string>& strs) {
        string& s0 = strs[0];
        for(int j = 0;j<s0.size();j++){
            //j相当于从左往右遍历
            for(string& s:strs){
                //相当于遍历判断每个字符串
                if(j == s.size() || s[j] != s0[j]){
                 return s0.substr(0,j);
                }
            }
        }
        return s0;
    }
};
相关推荐
不会代码的小猴1 小时前
6. Qt网络编程
开发语言·c++·笔记·qt·算法
Zguigo1 小时前
树的前序|中序|后序遍历【使用栈实现】
数据结构·算法
zhanghaha13142 小时前
HTML系列教程:4_什么是 HTML 元素(零基础超详细讲解)
前端·算法·html
TAN-90°-2 小时前
Deep Learning for Computer Vision——Training CNNs and CNN Architectures
人工智能·深度学习·神经网络·算法·机器学习·计算机视觉·cnn
0x3F(小茶)2 小时前
Tokenization(分词算法):一切大语言模型的地基
人工智能·算法·语言模型
Keven_112 小时前
算法札记:利用floyd判环算法优化SPFA判负环算法
算法·spfa判负环
mCell10 小时前
Lua 编程入门:从基础语法到元表
javascript·算法·lua
wuyk55512 小时前
98.C语言易混难点:字符数组与字符串指针的底层差异
c语言·开发语言·c++·stm32·嵌入式硬件·算法