leetcode菜狗入门 | 14. 最长公共前缀

最长公共前缀

题目要求

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

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

示例 1:

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

示例 2:

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

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

解题思路

我采用了暴力解法,就是以第一个为起点,把它当作公共前缀,拿下一个和它比较,截取两者的公共前缀,再用新的公共前缀和后面的比,再更新再比较…以此类推。这种办法比较暴力,耗时长内存占用比较大,以后要是学到新解法再来更新吧。

代码

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        int len = strs.size();
        string ans;
        if(len == 0){
            ans = "";
            return ans;
        }
        else{
            ans = strs[0];
            for(int j = 1; j < len; j++){
                int k = 0;
                for(k = 0; k < ans.length(); k++){
                    if(strs[j][k] != ans[k]){
                        break;
                    }
                }
                if(k == 0){
                    ans = "";
                    break;
                }
                else{
                    ans = strs[j].substr(0,k);
                }
            }
            return ans;
        }
    }
};
发布了14 篇原创文章 · 获赞 0 · 访问量 145

猜你喜欢

转载自blog.csdn.net/weixin_42349706/article/details/104398008
今日推荐