LeetCode 14.Longest Common Prefix

LeetCode 14.Longest Common Prefix

Description:

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

Difficulty:Easy


分析:

这道题比较简单,只需要两层循环简单判断就可得到结果。先以第一个字符串作为初始结果,后面的字符串与之比较每个字符是否相同即可。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size() == 0) return "";
string result = strs[0];
for (int i = 1; i < strs.size(); i++) {
for (int j = 0; j < result.length(); j++) {
if (result[j] != strs[i][j]) {
result = result.substr(0, j);
break;
}
}
}
return result;
}
};

Discussion中有另外一个解法:

它是从第一个字符串的字符和第二个字符串的字符比较,第二个字符串的字符与第三个字符串继续比较,以此类推得到结果。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string result = "";
for (int index = 0; strs.size() > 0; result += strs[0][index], index++) {
for (int i = 0; i < strs.size(); i++) {
if (index >= strs[i].size() || (i > 0 && strs[i][index] != strs[i - 1][index])) {
return result;
}
}
}
return result;
}
};
------本文结束感谢阅读------