9_回文数

zeta186012 / 2024-08-12 / 原文

9_回文数

【问题描述】

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。(回文数指的是从左到右看和从右向左看完全一样的数字。)

示例:
输入:x = 121
输出:true

解:

【算法设计思想】

主要是利用取模运算,对于一个数x进行x%10的运算即可得到它的最后一位数字,依此把逆转之后的数字进行表示即可。注意使用original_num这个变量来暂存一下x。

【算法描述】

C++:

class Solution {
public:
    bool isPalindrome(int x) {
        if (x < 0)
            return false;

        long long original_num = x;
        long long reversed_num = 0;
        while (x > 0) {
            reversed_num = reversed_num * 10 + x % 10;
            x /= 10;
        }

        return reversed_num == original_num;
    }
};

Java:

class Solution {
    public boolean isPalindrome(int x) {
        if (x < 0)
            return false;

        int original_num = x;
        int reversed_num = 0;

        while (x > 0) {
            reversed_num = reversed_num * 10 + x % 10;
            x = x / 10;
        }

        return original_num == reversed_num;
    }
}

Python:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if(x < 0):
            return False
        
        original_num = x
        reversed_num = 0
        while(x > 0):
            reversed_num = reversed_num * 10 + x % 10
            x = x // 10

        return original_num == reversed_num

C语言:

bool isPalindrome(int x) {
    if (x < 0)
        return false;

    long long int original_num = x;
    long long int reversed_num = 0;

    while (x > 0) {
        reversed_num = reversed_num * 10 + x % 10;
        x = x / 10;
    }

    return original_num == reversed_num;
}