您的位置:首页 > 其它

LeetCode 014. Longest Common Prefix

2017-05-04 14:25 363 查看

问题

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