在做一道LeetCode的题,提交后报数组越界错 
原题连接:https://leetcode-cn.com/problems/longest-common-prefix/description/求大佬们解答,哪儿错了,怎么改?
public class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs==null)
            return "";
        if(strs.length==1)
            return "";
int min = Integer.MAX_VALUE;
StringBuilder stringBuilder =new StringBuilder();
for (int i = 0; i < strs.length; i++) {
if (strs[i].length() < min)
min = strs[i].length();
if(strs[i]==null)
return "";
}
if(min==0)
return "";
boolean flag = true;
for (int j = 0; j < min; j++) {
char tmp = strs[0].charAt(j);
for (int k = 0; k < strs.length; k++)
if (strs[k].charAt(j) != tmp) {
flag = false;
break;
}
if (flag)
stringBuilder.append(tmp);
else
return stringBuilder.toString();
}
return "";
}
}

解决方案 »

  1.   

    这个情况就是  两个String的数组但是其中一个String是=“”的。所以第19行 strs[0].charAt(j);   就会下标越界。
      

  2.   

    所以不仅要判断数组大小是2  还要判读每个String是不是为空,判断后才能对String变量做charAt函数操作
      

  3.   

    楼主可以参考我的博客https://blog.csdn.net/qq_36387730。有详细解释哟!
      

  4.   

    你可以试着加一条
    if(strs.length == 0){
                return "";
            }
      

  5.   

    而且为什么strs.length == 1 return "" 呢
    如果只有一个字符串的话,那么他本身就是公共前缀了