美文网首页LeetCode
14.最长公共前缀

14.最长公共前缀

作者: 闭门造折 | 来源:发表于2018-09-14 15:36 被阅读7次

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

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

    示例 1:

    输入: ["flower","flow","flight"]
    输出: "fl"

    示例 2:

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

    说明:
    所有输入只包含小写字母 a-z

    朴素的暴力方法,n^2遍历,如果数据量特别大的话,我认为可以随机捉对抽并取最长公共前缀

    这道题需要考虑strs为空,或是其子项为空的情况(为空时直接取值会出错)

    具体代码:

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

    相关文章

      网友评论

        本文标题:14.最长公共前缀

        本文链接:https://www.haomeiwen.com/subject/fnmogftx.html