2016-02-19 38 views
-2
String input; 
int longestpali = 0; 
String original, reverse = ""; 
Scanner sc = new Scanner(System.in); 
input = sc.next(); 

for(int j = 0; j < input.length(); j = j + 1) 

    for(int k = 0; k < input.length(); k = k + 1) { 

     original = input.substring(j,k); 

     int length = original.length(); 

     for (int i = length - 1; i >= 0; i--) 
      reverse = reverse + original.charAt(i); 

     if (original.equals(reverse)) 
      longestpali = original.length(); 
    } 

System.out.println(longestpali); 

它說有一個錯誤original = input.substring(j,k); 此代碼假設搜索整個輸入找到最長的迴文。有人可以識別我的迴文檢測器有什麼問題嗎?

+1

在將來請確保您提供所有相關信息。說「有一個錯誤」,而不說哪一個就像是「我在某處受傷」那樣去看醫生。 – Amadan

回答

0

您可以使用「YOURSTRINGHERE.length」方法獲取每個字符串的值,並獲取字符串中的字符數量。然後你可以用幾個if循環來比較這些值,然後這樣做。

0

k需要從i0開始,不,否則你最終做.substring(1, 0),在起動前結束;這會增加StringIndexOutOfBoundsException

+0

謝謝XD我應該早些時候看到我自己,我的不好 – Santorin

0

這應該是你第一內環

對(INT K = J + 1; k < imput.length(); K = K + 1){ .. }

+0

而且它更好地使用StringBuilder而不是String,在那裏你可以使用內建的函數進行反轉,而不是像這樣使用循環。 –

相關問題