力扣经常出现输入为空的监测点,所以需要特判,为空直接返回。
直接两重循环,一层枚举字符串,一层枚举字符串内字符
普通的枚举,两重循环;重要的是判断条件的考虑周全
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string res;
if(strs.empty()) return res;//防止输入为空
for(int i = 0;; i++){
if(i >= strs[0].size())//目前长度大于等于第一个字符串的长度
return res;//就直接返回res
char c = strs[0][i];//取出第一个字符串的第i个字母
for(auto& str:strs)//依次判断所有字符串的第i个字母是否与之相同
if(str.size()<=i || str[i]!=c)//长度也得考虑
return res;
res += c;//否则就把这个字符加上
}
}
};