1. 程式人生 > >判斷一個整數是否是迴文數

判斷一個整數是否是迴文數

這段程式碼是我做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;
        }
    }
}