暴力法,外层是遍历的位数,内层是遍历所有字符串,char c记录第一个字符串的当前位,如果后面有一个字符串的当前位不是c或者当前长度已经大于被遍历的某个字符串,都要退出,并且要退出大循环,用一个flag记录。如果一轮下来都是相同的,就让结果+=c
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
//来一个hash记录每个字符出现的次数肯定不行,有些字符在一个字符串中就出现多次了
//只有O(mn)的方法,遍历每个字符串的每一位
string prefix = "";
if(strs.size() == 0) return "";
if(strs.size() == 1) return strs[0];
bool jieshu = false;
for(int i = 0; i < strs[0].length(); ++i){
char c = strs[0][i];
for(string s : strs){
if(i >= s.length()){
jieshu = true;
break;
}
else if(s[i] != c){
jieshu = true;
break;
}
}
if(jieshu) break;
prefix += c;
}
return prefix;
}
};