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);
时出错
该代码假设在整个输入中搜索以找到最长的回文。
答案 0 :(得分:0)
您可以使用“YOURSTRINGHERE.length”方法获取每个字符串的值,并获取字符串中的字符数。然后,您可以使用几个if循环将这些值相互比较,并以此方式执行。
答案 1 :(得分:0)
您的k
需要从i
开始,而不是从0
开始,否则您最终会在开始之前结束.substring(1, 0)
;这会引发StringIndexOutOfBoundsException
。
答案 2 :(得分:0)
这应该是你的第一个内循环
for(int k = j + 1; k&lt; imput.length(); k = k + 1){ .. }