您的位置:首页 > 其它

Longest Common Prefix(最长公共前缀)

2016-09-20 20:55 477 查看
Write a function to find the longest common prefix string amongst an array of strings.

题目链接:https://leetcode.com/problems/longest-common-prefix/

思路:

1.纵向扫描。从位置0开始,对每一个位置比较所有字符串,直到遇到一个不匹配。

代码:

class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty()) return "";
for(int idx = 0;idx<strs[0].size();++idx){// 纵向扫描
for(int i = 1;i<strs.size();++i){
if(strs[i][idx]!=strs[0][idx]) return strs[0].substr(0,idx);
}
}
return strs[0];
}
};

2.横向扫描。每个字符串与第0个字符串,从左到右比较,直到遇到一个不匹配。
然后继续下一个字符串。

class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty()) return "";
int right_most = strs[0].size()-1;
for(size_t i = 1;i<strs.size();++i){
//横向扫描
for(int j = 0;j<=right_most;j++){
if(strs[i][j]!=strs[0][j])
right_most = j-1;
}
}
return strs[0].substr(0,right_most+1);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: