最短板原则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include<string>
#include<vector>

using namespace std;




class Solution{
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty()) return "";
if(strs.size() == 1) return strs[0];
int minStrIndex = 0; //寻找最短的字符串
for(int i = 0 ;i< strs.size();++i){
if(strs[i].size() < strs[minStrIndex].size()){
minStrIndex = i;
}
}

const string& base = strs[minStrIndex];
int index = 0;
for(; index < strs[minStrIndex].size(); index++){
char c = base[index];
for(int i = 0; i < strs.size(); i++){
if(strs[i][index] != c){
return base.substr(0,index);
}
}
}
return base;
}

};