您的位置:首页 > 其它

LeetCode14. Longest Common Prefix

2018-01-07 21:39 453 查看

题目:

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

题目分析:

题目意思是给定一个字符串的数组,要我们求出这些字符串数组的最长公共前缀,这里的前缀必定是从字符串的开头开始的

首先最长公共前缀必定是由这些字符串中最短的那个决定的,因此我们可以先找出这些字符串中最短的那个,然后用他的每个前缀和其他字符串对比,从而得出最长公共前缀,得到一个字符串的每个字串我们可以用c++string库里的substr函数

c++代码:

class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size() == 0) return "";
if (strs.size() == 1) return strs[0];
int min_length = strs[0].size(), temp_str = 0;
for (int i = 0; i < strs.size(); i++) {
if (strs[i].size() < min_length) {
min_length = strs[i].size();
temp_str = i;
}
}
string result;
for(int i = min_length; i >= 0; i--){
result = strs[temp_str].substr(0,i);

int j = 0;
for(; j < strs.size(); j++){
if(j == temp_str)
continue;
string temp = strs[j].substr(0,i);
if(result != temp)
break;
}
if(j == strs.size())
return result;
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: