最长公共前缀

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
    if(!strs.size())
        return "";
    else if(strs.size() == 1  )
        return strs[0];
    else{
        string pre_s = strs[0];
        int len = strs.size();
        for(int i =1;i< len;i++)
            pre_s = find_longest(pre_s,strs[i]);
        return pre_s;
    }
   
    }
    string find_longest(string &s1,string &s2)
    {
        int len = min(s1.length(),s2.length()    );
        int index = 0;
        while(index< len && s1[index] == s2[index] )
        {
            index++;
        }
        return s1.substr(0,index);

    }



};

 这,随手写就能无敌么。盲猜有人死记硬背写了kmp了。这道题是前缀。压根不用kmp开个数组。

前缀比较压根不回溯,时间复杂度就是线性的。用kmp多此一举还浪费空间。竟然见到有人用kmp。

原文地址:https://www.cnblogs.com/ranzhong/p/14310901.html