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;

    }

};

 

你可能感兴趣的:(long)