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;
    }
};
  1. 边界情况处理:如果输入数组为空,直接返回空字符串。
  2. 初始化公共前缀:将第一个字符串设为初始公共前缀。
  3. 遍历字符串数组:从第二个字符串开始,逐个与当前公共前缀比较。
  4. 更新公共前缀:使用双指针方法比较字符,找到当前字符串与公共前缀的共同部分,并更新公共前缀。
  5. 提前终止:如果公共前缀在比较过程中变为空,立即返回空字符串。