您的位置:首页 > 其它

14.Longest Common Prefix

2015-06-12 12:51 369 查看
思路:直接明了。找出最短的字符串,然后跟第一个字符串比较,用比较得到的结果去跟第二个字符串比较。直到结束。时间复杂度O(mn),实际会好点

class Solution {

public:

    string longestCommonPrefix(vector<string>& strs) {

        int nums=strs.size();

        if(nums==0) return "";

        if(nums==1) return strs[0];

        //find min

        int shortest_pos=0;

        for(int i=1;i<nums;++i){

            if(strs[i].size()<strs[shortest_pos].size()){

                shortest_pos=i;

            }

        }

        //process

        string result=strs[shortest_pos];

        for(int i=0;i<strs.size();++i){

            if(shortest_pos==i) continue;

            for(int j=0;j<result.size();++j){

                if(result[j]!=strs[i][j]){

                    result=result.substr(0,j);

                    break;

                }

            }

        }

        //end

        return result;

    }

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: