最长公共前缀

    技术2025-02-10  14

    最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀。

    如果不存在公共前缀,返回空字符串 “”。

    示例 1:

    输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2:

    输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。

    题解

    string longestCommonPrefix(vector<string>& strs) { string c; if(strs.size()==0) return ""; for(int i=0;i<strs[0].length();i++){ int cnt=0; for(int j=1;j<strs.size();j++){ if(strs[j][i]==strs[0][i]) cnt++; else break;//如果不跳出循环 效率降低 } if(cnt==strs.size()-1) c=strs[0].substr(0,i+1); else break;//如果不跳出循环 测试结果出错 } if(c.length()==0) return ""; else return c; }

    注意

    1、提交时出现如下错误

    LeetCode--runtime error: reference binding to null pointer of type 'struct value_type'(stl_vector.h)

    LeetCode测试集里面会判断输入为空的情况 注意进行处理

    if(strs.size()==0) return "";

    2、巧妙运用string的取子串函数substr() 会方便很多 3、两个for()循环体内当不满足条件时记得用break跳出循环

    Processed: 0.008, SQL: 9