gpt4 book ai didi

java - 仅使用索引作为参数检查数组是否为回文

转载 作者:行者123 更新时间:2023-12-01 18:22:57 25 4
gpt4 key购买 nike

import java.util.Scanner;

public class Palindrome1 {

public static boolean palindrome(int[] num, int index) {
//write the logic here

int length = num.length;
int end = --length;

if (length == 0 || length == 1)
return true;

if (index >= end)
return true;

if(num[index]!=num[end])
return false;

return palindrome(num, index+1);
}


public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int num[] = new int[5];
for(int i=0; i< 5;i++)
num[i]=sc.nextInt();
boolean answer =palindrome(num, 0);
System.out.println(answer);
}
}

如果我有一个可以自动递减的结束索引值,那就很容易了。但是仅仅使用索引我们如何解决这个问题呢?请记住,我不应该更改 isPalindrome 方法的参数数量。
提前致谢。

最佳答案

end中减去index

int end = --length;

end -= index;

查看两端对应的索引

public static boolean isPalindrome(int[] num, int index) {
int length = num.length;
int end = --length;
end -=index;

print(num, index, end);

if (length == 0 || length == 1)
return true;

if (index >= end)
return true;

if(num[index]!=num[end])
return false;

return isPalindrome(num, index+1);
}

private static void print(int num[], int index, int end) {
for (int i = 0; i < num.length; i++) {
if(i == index || i == end)
System.out.print("["+num[i]+"]");
else
System.out.print("_,");
}

System.out.println();
}

输出

[1]_,_,_,[1]
_,[2]_,[2]_,
_,_,[3]_,_,
true

关于java - 仅使用索引作为参数检查数组是否为回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60275860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com