先数组排序,然后只需要比较最大和最小的暨第一个和最后一个string,保存一个标记位i,利用substr返回string中第一个到第i个组成的子字符串;注意,如果strs为空,必须返回"".

class Solution {
public:
    /**
     * 
     * @param strs string字符串vector 
     * @return string字符串
     */
    string longestCommonPrefix(vector<string>& strs) 
    {
        // write code here
        int len = strs.size();
        if(len == 0)
            return "";
        sort(strs.begin(),strs.end());
        int flag = min(strs[0].size(),strs[len-1].size());
        int i = 0;
        for(i = 0;i<flag;++i)
        {
            if(strs[0][i] != strs[len-1][i])
                break;
        }
        return strs[0].substr(0,i);
    }
};