1. 程式人生 > >LeetCode-回文數

LeetCode-回文數

package ret plot size position rom 個數字 list int

LeetCode-回文數

Table of Contents

  • 1. Easy-回文數
    • 1.1. 題目描述
    • 1.2. 示例1:
    • 1.3. 示例2:
    • 1.4. 示例 3:
  • 2. 自己的答案
    • 2.1. 思路
    • 2.2. 代碼
  • 3. 官方解答

1 Easy-回文數

1.1 題目描述

判斷一個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

1.2 示例1:

輸入: 121 輸出: true

1.3 示例2:

輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個回文數。

1.4 示例 3:

輸入: 10 輸出: false 解釋: 從右向左讀, 為 01 。因此它不是一個回文數。

2 自己的答案

2.1 思路

  1. 將每個數字通過余10的方式取得並存在一個數組中,然後遍歷數組,比較數組兩端的元素是否一致
  2. 如果不一致,不是回文數,返回false
  3. 如果都一致,是回文數,返回true
  4. 負數均不是回文數,返回false

2.2 代碼

package algorithm.easy;

import java.util.ArrayList;
import java.util.List;

public class PalindromeNumber {

    public static boolean isPalindrome(int x) {
        // 如果是負數,不是回文數,直接返回false.
        if (x < 0) {
            return false;
        }
        List<Integer> list = new ArrayList<>();
        // 取出每一位數字
        while (x != 0) {
            list.add(x % 10);
            x /= 10;
        }
        // 對比,檢驗是否為回文數
        for (int i = 0; i < list.size() / 2; i++) {
            if (list.get(i) != list.get(list.size() - i - 1)) {
                return false;
            }
        }
        // 是回文數
        return true;
    }

    public static void main(String[] args) {
        System.out.println(isPalindrome(121212));
    }
}

3 官方解答

Date: 2018-10-25 21:39

Author: devinkin

Created: 2018-10-25 四 21:48

Validate

LeetCode-回文數