这段代码是我作leetcode练习题时写的,虽然实现了回文数的识别,可是倒置后的数字不是一个完整的数字,而是由几个输出拼接而成的,我的以为不是很好,有点投机取巧的嫌疑。还望有高手指点。java
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; } } }