这段代码是我做leetcode练习题时写的,虽然实现了回文数的识别,但是倒置后的数字不是一个完整的数字,而是由几个输出拼接而成的,个人觉得不是很好,有点投机取巧的嫌疑。还望有高手指点。
package huiwenshu;
import java.util.*;
public class study06 {
public static void main(String[] args) {
Scanner number = new Scanner(System.in);
//输入长整形数字a
System.out.printf("输入原始数字:");
Integer a = number.nextInt();
//将a转换为字符串类型
String b = a.toString();
//将字符串转化为数组
char c[] = b.toCharArray();
//定义一个新数组用于接收倒置后的数组元素
char[] d = new char[c.length];
System.out.print("倒置后的数字为:");
for (int i = 0; i < c.length; i++) {
d[i] = c[c.length-i-1];
System.out.print(d[i]);
}
//判断数字是否是回文数
System.out.println();
if (Arrays.toString(c).equals(Arrays.toString(d))){
System.out.println("该数字是回文数");
}else {
System.out.println("该数字不是回文数");
}
}
}
下面这段代码是可以在leetcode上提交的代码:
import java.util.*;
public class Solution {
public static void main(String[] args) {
Solution a = new Solution();
Scanner b = new Scanner(System.in);
Integer c = b.nextInt();
boolean g=a.isPalindrome(c);
System.out.println(g);
}
public boolean isPalindrome(Integer x) {
//将a转换为字符串类型
String d = x.toString();
//将字符串转化为数组
char e[] = d.toCharArray();
//定义一个新数组用于接收倒置后的数组元素
char[] f = new char[e.length];
for (int i = 0; i < e.length; i++) {
f[i] = e[e.length - i - 1];
}
if (Arrays.toString(e).equals(Arrays.toString(f))) {
return true;
} else {
return false;
}
}
}