Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

思路:题目意思是所有字符串的最长公共前缀。首先我们看两个字符串的最长公共前缀,他们的前缀不可能超过最短字符串的长度。所以在这个长度内比较他们的最长公共前缀prefix,并记录其俩最长公共前缀的位置,得到他们俩的最长公共前缀作为下次比较。如果任何字符串长度为0,则输出空字符串。

class Solution {
public:
    string longestCommonPrefix(vector<string> &strs) {
        if(strs.size()==0)
            return "";
        string prefix=strs[0];
        for(int i=1;i<strs.size();i++)
        {
            int min_len=0;
            int prefix_len=prefix.length();
            int strs_ilen=strs[i].length();
            if(prefix_len==0||strs_ilen==0)
                return "";
            if(prefix_len<strs_ilen)
                min_len=prefix_len;
            else
                min_len=strs_ilen;
            int j;
            for(j=0;j<min_len;j++)
            {
                if(prefix[j]!=strs[i][j])
                    break;
            }
            prefix=prefix.substr(0,j);
        }
        return prefix;
    }
};

 

posted @ 2014-04-19 10:08  Awy  阅读(131)  评论(0编辑  收藏  举报