LeetCode 14. Longest Common Prefix(最长公共前缀)
2018-03-17 14:43
399 查看
题目描述: Write a function to find the longest common prefix string amongst an array of strings.
分析:
题意:给定一些字符串,求它们的最长公共前缀。
思路:先求得所有字符串的最短长度min_length,那么它将是公共前缀可能的最长长度,我们分别获得min_length→1长度的某个字符串的前缀,如果其它字符串相同长度的前缀跟它相等,那么已经找到最长公共前缀,返回即可。
代码:
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int n = strs.size();
// Exceptional Case:
if(n == 0){
return "";
}
if(n == 1){
return strs[0];
}
int min_len = INT_MAX;
for(string str: strs){
min_len = min(min_len, (int)(str.length()));
}
for(int i = min_len; i >= 1; i--){
string prefix = strs[0].substr(0, i);
bool flag = false;
for(int j = 1; j <= n - 1; j++){
if(strs[j].substr(0, i) != prefix){
flag = true;
break;
}
}
if(!flag){
return prefix;
}
}
return "";
}
};
分析:
题意:给定一些字符串,求它们的最长公共前缀。
思路:先求得所有字符串的最短长度min_length,那么它将是公共前缀可能的最长长度,我们分别获得min_length→1长度的某个字符串的前缀,如果其它字符串相同长度的前缀跟它相等,那么已经找到最长公共前缀,返回即可。
代码:
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int n = strs.size();
// Exceptional Case:
if(n == 0){
return "";
}
if(n == 1){
return strs[0];
}
int min_len = INT_MAX;
for(string str: strs){
min_len = min(min_len, (int)(str.length()));
}
for(int i = min_len; i >= 1; i--){
string prefix = strs[0].substr(0, i);
bool flag = false;
for(int j = 1; j <= n - 1; j++){
if(strs[j].substr(0, i) != prefix){
flag = true;
break;
}
}
if(!flag){
return prefix;
}
}
return "";
}
};
相关文章推荐
- LeetCode14. Longest Common Prefix(字典树:最长公共前缀)
- LeetCode 14. Longest Common Prefix(最长公共前缀)
- LeetCode | 14. Longest Common Prefix(最长公共前缀)
- LeetCode--14. Longest Common Prefix(最长公共前缀子串)
- Leetcode刷题记——14. Longest Common Prefix(最长公共前缀)
- leetcode-14. Longest Common Prefix(寻找字符串数组最长公共前缀)
- (LeetCode)Longest Common Prefix --- 最长公共前缀
- 14. Longest Common Prefix(最长公共前缀)
- LeetCode | Longest Common Prefix(最长公共前缀)
- 【LeetCode-面试算法经典-Java实现】【014-Longest Common Prefix(最长公共前缀)】
- LeetCode 14 Longest Common Prefix(最长公共前缀)
- LeetCode Longest Common Prefix 最长公共前缀
- [leetcode] Longest Common Prefix 字符窜最长公共前缀判断
- leetcode:java.T014_LongestCommonPrefix--写一个函数找出一个字串所数组中的最长的公共前缀
- leetcode——14——Longest Common Prefix最长公共前缀
- Leetcode:Longest Common Prefix 最长公共前缀
- LeetCode-14-Longest Common Prefix(最长公共前缀)
- 每日一练之Longest Common Prefix【LeetCode No.14】——求字符串的最长公共前缀
- LeetCode 14 Longest Common Prefix(最长公共前缀)
- LeetCode 第十四题 Longest Common Prefix(最长公共前缀)