思路: 外层依次遍历每一个下标,内层遍历每个字符串
注意:i 更新到最后的情况,此时index没有赋值!!!
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string ans = "";
int n = strs.size(); //n个字符串
int len = ~(1 << 31); //len为所有字符串中最短的长度
for (int i = 0; i < n; ++i) {
len = min(len, (int)strs[i].size());
}
if (len == 0) return ans;
if (n == 1) return strs[0];
int index = 0;
int i;
for (i = 0; i < len; ++i) { //下标遍历
int j;
for (j = 1; j < n; ++j) { //字符串遍历
if (strs[j][i] != strs[j - 1][i]) {
index = i;
break;
}
}
if (j != n) break;
}
if (i == len) index = i; //注意i更新到最后的情况,此时index没有赋值!!!
return strs[0].substr(0, index);
}
};