gpt4 book ai didi

java - 如何判断数组值的序列是否是回文?

转载 作者:行者123 更新时间:2023-12-02 03:16:57 25 4
gpt4 key购买 nike

编写一个程序,将 10 个整数存储在一个数组中。该程序应该测试数字序列是否是回文。这意味着它向前读取的内容与向后读取的内容相同。以下是两个示例:

请输入 10 个整数: [1|2|3|7|7|7|7|3|2|1]

该序列是回文序列。

请输入 10 个整数: [1|2|3|7|7|7|7|2|3|1]

该序列不是回文。

我的代码是:

import java.util.Scanner;
public class problem4 {
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please type 10 integers:");
int[] num = new int[10];
int[] reverse = new int[10];
for (int a = 0; a < num.length; a++) {
num[a] = scan.nextInt();
}
int b = 0;
int c = 9;
while (c != 0) {
reverse[c] = num[b];
c--;
b++;
if (c == 0) break;
}
if (num[0] == reverse[9] && num[1] == reverse[8] && num[2] == reverse[7] && num[3] == reverse[6] && num[4] == reverse[5])
System.out.println("The sequence is palindromic.");
else
System.out.println("The sequence is not palindromic.");
}
}

但是没有构建消息,它总是说无论我输入什么,该序列都是回文。

最佳答案

您可以创建一个简单的方法并传递数组来检查回文。

......主要从这里开始

Scanner scan = new Scanner(System.in);
System.out.println("Please type 10 integers:");
int[] num = new int[10];
int[] reverse = new int[10];
for (int a = 0; a < num.length; a++) {
num[a] = scan.nextInt();
}
System.out.println(palin(num));

......主要内容到此结束以及类中的方法

你基本上将数组分为两个 1 2 3 7 7 <----> 7 7 3 2 1

并检查 front 是否与 back 相同,first 是起始索引,prev 是最后一个索引。

public static String palin(int[] arr){
int prev, first;
boolean tr = true;
for(first = 0, prev = arr.length-1; first < arr.length/2; prev--,first++){
if(arr[first] != arr[prev]){
tr = false;
break;
}
}
return tr ? "Is a palindromic":"Not palindromic";
}

all together

 import java.util.Scanner;


public class problem4 {

public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please type 10 integers:");
int[] num = new int[10];
int[] reverse = new int[10];
for (int a = 0; a < num.length; a++) {
num[a] = scan.nextInt();
}

System.out.println(palin(num));
}

public static String palin(int[] arr){
int prev, first;
boolean tr = true;
for(first = 0, prev = arr.length-1; first < arr.length/2; prev--,first++){
if(arr[first] != arr[prev]){
tr = false;
break;
}
}
return tr ? "Is a palindromic":"Not palindromic";
}

}

关于java - 如何判断数组值的序列是否是回文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40167171/

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