【一天一道LeetCode】#14 Longest Common Prefix

一天一道LeetCode系列

(一)题目:

Write a function to find the longest common prefix string amongst an

array of strings.

(二)题意

求一组字符串中的最长前缀字符串。

举例:字符串组:abc,ab,abdef,abws 最长前缀字符串:ab

我的解法是先求出这组字符串中最短的,然后依次匹配,遇到不同的就退出。

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        if(strs.size()==0) return "";
        if(strs.size()==1) return strs[0];

        string minstr=strs[0];
        string compre="";
        int minlen=strs[0].length();
        for(int i = 0 ; i<strs.size() ; i++)//求出最短的字符串
        {
            int len = strs[i].length();
            if(len<minlen)
            {
                minlen = len;
                minstr = strs[i];
            }
        }
        for(int i = 0 ; i < minlen ; i++)
        {
            int j = 0;
            int count = 0;
            while(j < strs.size())
            {
                string temp = strs[j];//依次匹配
                if(temp[i] == minstr[i])
                {
                    count++;
                }
                j++;
            }
            if(count == strs.size())
            {
                compre+=minstr[i];
            }
            else break;//碰到不相同的就退出
        }
        return compre;
    }
};
上一篇:Windows 8.1 with update 官方最新镜像汇总


下一篇:AngularJS进入使用前的准备工作