leetcode题- 最长公共前缀 为什么会报数组越界错?

maltyshane 2018-06-06 08:57:09
在做一道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 "";
}
}
...全文
873 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Nautron_ 2018-08-16
  • 打赏
  • 举报
回复
而且为什么strs.length == 1 return "" 呢
如果只有一个字符串的话,那么他本身就是公共前缀了
Nautron_ 2018-08-16
  • 打赏
  • 举报
回复
你可以试着加一条
if(strs.length == 0){
return "";
}
wangxizzz 2018-08-15
  • 打赏
  • 举报
回复
楼主可以参考我的博客https://blog.csdn.net/qq_36387730。有详细解释哟!
Kaisnow 2018-08-04
  • 打赏
  • 举报
回复
所以不仅要判断数组大小是2 还要判读每个String是不是为空,判断后才能对String变量做charAt函数操作
Kaisnow 2018-08-04
  • 打赏
  • 举报
回复
这个情况就是 两个String的数组但是其中一个String是=“”的。所以第19行 strs[0].charAt(j); 就会下标越界。
oyljerry 2018-06-06
  • 打赏
  • 举报
回复
数组越界了。空数组等有没有加判断

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧