最长公共前缀

题目

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

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

示例 1:

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

示例 2:

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

说明:

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

解答

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        if(strs.size()==0)
        {
            return "";
        }
        string ref=strs[0];
        int len=ref.size();
        for(auto s : strs)
        {
            if(s.size()<len)
            {
                len=s.size();
                ref= ref.substr(0,len);
            }
            while(s.substr(0,len)!=ref)
            {
                len--;
                ref=ref.substr(0,len);
                if(ref=="")
                {
                    return ref;
                }
            }
        }
        return ref;
    }
};
posted @ 2020-02-18 16:36  敖毛毛  阅读(98)  评论(0编辑  收藏  举报