在做一道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 "";
}
}
原题连接: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 "";
}
}
if(strs.length == 0){
return "";
}
如果只有一个字符串的话,那么他本身就是公共前缀了