Leetcode实战: 14. 最长公共前缀

题目:

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

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

示例1

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

示例2

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

说明

所有输入只包含小写字母 a-z 。

算法实现:

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

结果:

时间复杂度:O(KN)O(KN),其中K是列表中字符串个数,N是最长公共前缀个数

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章