[Algorithm] Leecode_ 9. Palindrome Number

JAsmine_log·2024년 8월 17일
0

9. Palindrome Number

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

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:

  • -2^31 <= x <= 2^31 - 1

Follow up:

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

Code

C++

class Solution
{
private:
    vector<int> digits(int x)
    {
        vector<int> nums;

        for (int i = 10; x > 0; i)
        {
            nums.push_back(x % i);
            x /= 10;
        }
        return nums;
    }

public:
    bool isPalindrome(int x)
    {

        if (x < 0)
            return false;

        vector<int> nums = digits(x);

        for (int i = 0; i < (nums.size() / 2); i++)
        {
            if (nums[i] != nums[nums.size() - i - 1])
            {
                return false;
            }
        }
        return true;
    }
};
profile
Everyday Research & Development

0개의 댓글