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);
}
};
题目链接: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);
}
};
相关文章推荐
- 算法系列——Longest Common Prefix最长公共前缀
- 寻找若干个字符串的最长公共前缀 Longest Common Prefix
- [leetcode] Longest Common Prefix 字符窜最长公共前缀判断
- LeetCode 14 Longest Common Prefix(最长公共前缀)(String)
- LeetCode OJ 之 Longest Common Prefix (最长公共前缀)
- LeetCode Longest Common Prefix 最长公共前缀
- Leet Code 14 Longest Common Prefix - 最长公共前缀 - Java
- Longest Common Prefix -最长公共前缀
- LeetCode OJ:Longest Common Prefix(最长公共前缀)
- LeetCode 第十四题 Longest Common Prefix(最长公共前缀)
- Leetcode:Longest Common Prefix 最长公共前缀
- [C++]LeetCode 14: Longest Common Prefix(最长公共前缀)
- longest-common-prefix 求字符串数组的最长公共前缀
- LeetCode #14 Longest Common Prefix 最长公共前缀 解题小节
- LeetCode 14 Longest Common Prefix(最长公共前缀)
- Longest Common Prefix(最长公共前缀)
- LeetCode-14-Longest Common Prefix(最长公共前缀)
- LeetCode 14 Longest Common Prefix(最长公共前缀)
- Longest Common Prefix字符串最长公共前缀问题
- 每日一练之Longest Common Prefix【LeetCode No.14】——求字符串的最长公共前缀