[LeetCode] Longest Common Prefix
2014-01-04 12:57
211 查看
问题:
Write a function to find the longest common prefix string amongst an array of strings.
分析:
这道题的input是一个vector of strings。首先把这些string中的第一个拿出来作为标准。第一个是谁其实并不重要,它是不是最长的或最短的也不重要,因为common prefix不可能比它长。然后我们保存一个变量rightMost,来表示到目前为止的longest common prefix。然后从1开始,一个string一个string地过。每次更新rightMost,取最小值。
代码:
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
if (strs.size() == 0)
return "";
if (strs[0].size() == 0)
return "";
int rightMost = strs[0].size();
for (int i = 1; i < strs.size(); i ++) {
int j = 0;
for (; j < strs[i].size() && j < rightMost; j ++) {
if (strs[i][j] != strs[0][j]){
break;
}
}
rightMost = min(rightMost, j);
}
return strs[0].substr(0, rightMost);
}
};
Write a function to find the longest common prefix string amongst an array of strings.
分析:
这道题的input是一个vector of strings。首先把这些string中的第一个拿出来作为标准。第一个是谁其实并不重要,它是不是最长的或最短的也不重要,因为common prefix不可能比它长。然后我们保存一个变量rightMost,来表示到目前为止的longest common prefix。然后从1开始,一个string一个string地过。每次更新rightMost,取最小值。
代码:
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
if (strs.size() == 0)
return "";
if (strs[0].size() == 0)
return "";
int rightMost = strs[0].size();
for (int i = 1; i < strs.size(); i ++) {
int j = 0;
for (; j < strs[i].size() && j < rightMost; j ++) {
if (strs[i][j] != strs[0][j]){
break;
}
}
rightMost = min(rightMost, j);
}
return strs[0].substr(0, rightMost);
}
};
相关文章推荐
- leetcode第一刷_Longest Common Prefix
- [LeetCode] Longest Common Prefix 解题报告
- LeetCode之Longest Common Prefix
- (leetcode)Longest Common Prefix
- [LeetCode] Longest Common Prefix
- leetcode_1 Two Sum,Longest Common Prefix
- [leetcode 14] Longest Common Prefix
- LeetCode-14-Longest-Common-Prefix 求若干字符串的最大公共前缀
- LeetCode-14-Longest Common Prefix(最长公共前缀)
- Longest Common Prefix -- leetcode
- 2017-09-09 LeetCode_014 Longest Common Prefix
- LeetCode - 14. Longest Common Prefix
- Leetcode:Longest Common Prefix
- LeetCode 14: Longest Common Prefix
- leetcode-14. Longest Common Prefix
- Longest Common Prefix-LeetCode
- LeetCode 14. Longest Common Prefix
- LeetCode 014 Longest Common Prefix
- Longest Common Prefix - LeetCode 14
- [Leetcode] 14. Longest Common Prefix