Palindrome Number

Posted by Bill on March 11, 2023

Palindrome Number

Given an integer x, return true if x is palindrome integer.

An integer is a palindrome when it reads the same backward as forward. For example, 121 is palindrome while 123 is not.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Example 1:

Input: x = 121
Output: true
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.
Example 4:

Input: x = -101
Output: false


Constraints:

-231 <= x <= 231 - 1

C++ Solution

思路是转化为string,然后左右指针对比,一旦有不同就返回false,直到指针相遇。当然负数立马返回false。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public:
    bool isPalindrome(int x) {
    if (x < 0) {
      return false;
    } else {
      char tmp[32];
      sprintf(tmp, "%d", x);
      string str = string(tmp);
      int left = 0;
      int right = str.length() - 1;
      while (left < right) {
        if (str[left] != str[right]) {
          return false;
        }
        left++;
        right--;
      }
    }
    return true;
  }
};