力扣遇到非常规的测试案例时进行了报错,如何解决?(关键词-字符串)

在力扣做一道计算最长公共前缀的问题,链接如下:
https://leetcode.cn/problems/longest-common-prefix/
题目难度本身并不大,但是题目要求输入的数组的每个元素都是包含小写字母的字符串

img

然后下面是我给出的代码:

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        int n = 0;
        string ans;
        int length = strs.size();
        bool flag = true;
        if(length == 1) return strs[0];
        for(int i = 0; i < 200&&flag == true; i++){
            for(int j = 0; j < length-1&&flag == true; j++){
                char former = strs[j][i];
                char later = strs[j+1][i];
                if(former == later) n++;
                else{
                    n = 0;
                    flag = false;
                }
                if(n == length-1){
                    ans += strs[j][i];
                    n = 0;
                }
            }       
        }
        return ans;
    }
};

在正常的情况下都可以实现,唯独遇到比较奇特的测试案例时进行了报错。

img

我查了一下,这个报错信息,应该是在边界上出了问题,但我不清楚我哪个地方越界了,请各位指点,万分感谢!

在第一个for循环后面加上判断,是任何一个元素是空字符串,则直接返回空字符串。因为空字符串与其他任何字符串的最长公共前缀都为""空字符串