您的位置:首页 > 职场人生

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