# 0009. Palindrome Number ###### tags: `Leetcode` `Palindrome` link: https://leetcode.com/problems/palindrome-number/ ## 思路 最容易想到的就是把integer转换成string,然后做对比,但就会出现奇数位数还是偶数位数要分开讨论的问题,另外还需要把每一位都存起来,相当占空间。同时又因为是一位一位去对比,也要消耗不少时间。 因此这一题选择把数字前后分成两部分,将前面的一部分和经过reverse之后的后面一部分比较。 值得注意的一点是解这道题的时候**因为有特殊情况,如带负号或者末尾是0的input,是直接可以排除掉的,因此为了节省时间,在最前面加了if判断** ## Code in C++ ``` class Solution { public: bool isPalindrome(int x) { if(x<0||(x%10==0&&x!=0)){ return false; } int reverse_num = 0; while(x>reverse_num){ reverse_num = reverse_num*10+x%10; x/=10; } return x == reverse_num||x==reverse_num/10; } }; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up