Loading

14. 最长公共前缀

题目

 

代码

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        //题目要求的是必须从每个字符串的0索引开始计算公共前缀
        if(strs.size()==0)
            return "";
        string prefix=strs[0];
        for(int i=1;i<strs.size();i++)
        {
            while(strs[i].find(prefix)!=0)
            {
                prefix=prefix.substr(0,prefix.size()-1);
                if(prefix=="")
                    return "";
            }
            
        }
        return prefix;
       
      
    }
};

 

思路

首先要看懂题目的意思是公共前缀,都要从第一个位置开始才算公共前缀。

 

将第一个字符串整体当作前缀,然后依次对每个其他字符串进行判断,是否匹配,如果不匹配,把第一个字符串去除最后一位,再进行判断,反复执行直到字符串为“”或者匹配成功,然后再对下一个字符串进行匹配。

posted @ 2018-09-14 08:21  李正浩  阅读(123)  评论(0编辑  收藏  举报