class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.empty()) return "";
string prefix = strs[0];
for (int i = 1; i < strs.size(); i++) {
int j = 0;
while (j < prefix.size() && j < strs[i].size() && prefix[j] == strs[i][j]) {
j++;
}
prefix = prefix.substr(0, j);
if (prefix.empty()) return "";
}
return prefix;
}
};
- 边界情况处理:如果输入数组为空,直接返回空字符串。
- 初始化公共前缀:将第一个字符串设为初始公共前缀。
- 遍历字符串数组:从第二个字符串开始,逐个与当前公共前缀比较。
- 更新公共前缀:使用双指针方法比较字符,找到当前字符串与公共前缀的共同部分,并更新公共前缀。
- 提前终止:如果公共前缀在比较过程中变为空,立即返回空字符串。