紅色字體那一行是報錯行,報錯:

class Solution {
public String longestCommonPrefix(String[] strs) {
StringBuilder sb=new StringBuilder();
char a=strs[0].charAt(0);
for (int i = 1; i <strs.length; i++) {
if (strs[0].charAt(0)!=strs[i].charAt(0)){
return "";
}
}
sb.append(a);
for (int j = 1; j < strs[0].length() ; j++) {
int judge=0;
for (int i = 1; i < strs.length; i++) {
if (j>strs[i].length()|| strs[0].charAt(j) != strs[i].charAt(j)) {
break;
}
else{
judge++;
}
}
if (judge== strs.length-1) {
sb.append(strs[0].charAt(j));
}
}
return sb.toString();
}
}
uj5u.com熱心網友回復:
當j=strs[i].length(), strs[i].charAt(j)就越界了但是錯誤提示不是越界啊,而是說把long轉成int可能會資訊丟失,你是不是之前把j定義為long形了,修改后忘了編譯,所以還是舊的編譯資訊。
uj5u.com熱心網友回復:
Strs[0]長度為10,strs[1]長度為5的入參,在str[i].charAt(j)那行就越界了呀,例如strs[1].charAt(6),你想想是不是uj5u.com熱心網友回復:
strs[i].charAt(j) 這個就很容易越界,只要你的后面某個字串小于第0個字串的長度轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/12742.html
標籤:Java相關
