LeetCode 014. Longest Common Prefix

来源:互联网 发布:网络类型有哪些 编辑:程序博客网 时间:2024/06/06 16:56

问题

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

分析

        求一个数组中,所有元算的最常公共前缀,获取数据中长度最短的元素,将这个元素的每一位,依次与数组中每个元素的每一位进行比较,当遇见不相等时,即刻终止

        对数组中的元素排序,这样以来只需要比较第一个元素和最后一个元素,就可以得到数组的最大公共前缀

解答

string longestCommonPrefix(vector<string>& strs) {    string result = "";    if (strs.size() == 0)        return result;    int minLenIndex = 0;    for (int i = 1; i < strs.size(); i++){        if (strs[i].length() < strs[minLenIndex].length())            minLenIndex = i;    }    int i = 0;    for (i = 0; i < strs[minLenIndex].length(); i++){        int j = 0;        for (j = 0; j < strs.size(); j++){            if (strs[j][i] != strs[minLenIndex][i]){                break;            }        }        if (j < strs.size()){            break;        }    }    result = strs[minLenIndex].substr(0, i);    return result;}
string longestCommonPrefix2(vector<string>& strs) {    string result = "";    if (strs.size() == 0)        return result;    sort(strs.begin(), strs.end());    int i = 0;    for (i = 0; i < strs[0].length(); i++){        if (strs[0][i] != strs[strs.size() - 1][i]){            break;        }    }    result = strs[0].substr(0, i);    return result;}
0 0
原创粉丝点击