水平暴力解法:
1 找出子串中最短子串长度
2 挨个遍历子串,查看当前字符是否为所有子串拥有,是添加,否程序结束
/*
* 编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
* */
#include <iostream>
#include <vector>
using namespace std;
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string res="";
if(strs.size()==0) return res;
int n=strs[0].size();
for(int i=0; i<strs.size(); i++){
int temp=strs[i].size();
n=min(temp,n);
}
for(int i=0;i<n;i++){
int flag=0;
for(int j=0;j<strs.size()-1;j++){
if(strs[j][i]!=strs[j+1][i]){
flag=1;
break;
}
}
if(flag==0){
res=res+strs[0][i];
} else
break;
}
return res;
}
};
int main() {
std::cout << "Hello, World!" << std::endl;
vector<string> strs;
string s1="flower";
string s2="flow";
string s3="flight";
strs.push_back(s1);
strs.push_back(s2);strs.push_back(s3);
Solution p;
cout<< p.longestCommonPrefix(strs);
return 0;
}