leetcode题解系列-008 回文数

老规矩,先上代码,后面有解题思路。

//
// Created by tannzh on 2020/6/16.
//
/**
 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:
    输入: 121
    输出: true

示例 2:

    输入: -121
    输出: false
    解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。

示例 3:
    输入: 10
    输出: false
    解释: 从右向左读, 为 01 。因此它不是一个回文数。

进阶:
    你能不将整数转为字符串来解决这个问题吗?
 */

#include 

class Solution {
public:
    bool isPalindrome(int x) {
        if (x < 0) return false;
        long rev{0}, origin{x};
        do {
            rev = rev * 10 + x % 10;
        } while (x /= 10);
        return rev == origin;
    }
};

int main(int argc, char **argv)
{
    Solution s;
    int m = 121, n = -121, k = 10;

    std::cout << m << ", isPalindrome: " << s.isPalindrome(m) << std::endl;
    std::cout << n << ", isPalindrome: " << s.isPalindrome(n) << std::endl;
    std::cout << k << ", isPalindrome: " << s.isPalindrome(k) << std::endl;

    return 0;
}

解题思路

leetcode题解系列-008 回文数_第1张图片

 

这个题目相对接单,直接用最直接的暴力解法就可以了,看代码应该一目了然。

你可能感兴趣的:(leetcode题解系列)