14. 最长公共前缀

14. 最长公共前缀

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

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

 

示例 1:

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

示例 2:

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

 

提示:

  • 1 <= strs.length <= 200
  • 0 <= strs[i].length <= 200
  • strs[i] 仅由小写英文字母组成

 

解析:

设一个公共vector即可,每个str都与之元素比较

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        vector<char> dic;
        for(int i = 0; i < strs.size(); i++)
        {
            string str = strs[i];

                if(i == 0)
                {
                    for(int j = 0; j < str.length(); j++)
                        dic.push_back(str[j]);
                }
                else
                {
                    while(str.length() < dic.size())
                    {
                        dic.pop_back();
                    }
                    for(int k = 0; k < dic.size(); k++)
                    {
                        if(k < str.length() && dic[k] != str[k])
                        {
                            while(dic.size() != k) dic.pop_back();
                            break;
                        }
                    }
                    

                }
            
        }
        string ret = "";
        for(int i = 0; i < dic.size(); i++) ret += dic[i];
        return ret;



    }
};

 

posted @ 2022-08-02 18:01  WTSRUVF  阅读(12)  评论(0编辑  收藏  举报