Home Palindrome Number
Post
Cancel

LeetCode #9: Palindrome Number (C/C++).

easy

source: https://leetcode.com/problems/palindrome-number/
C/C++ Solution to LeetCode problem 9. Palindrome Number.

Problem


Given an integer x, return true if x is a palindrome, and false otherwise.

Examples


Example 1:

Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.

Example 2:

Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

Constraints


  • -231 <= x <= 231 - 1

Follow up: Could you solve it without converting the integer to a string?

Solution


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
  bool isPalindrome(int x) {
    if (x < 0 || (x != 0 && x % 10 == 0)) 
      return false;

    int tmp = x;
    long rev = 0;
    
    while (tmp > 0) {
      int mod = tmp % 10;
      tmp /= 10;
      
      rev = (rev * 10) + mod;
    }
    
    return rev == x;
  }
};
This post is licensed under CC BY 4.0 by the author.

String to Integer (atoi)

Regular Expression Matching