DEV Community

pharia-le
pharia-le

Posted on

Solving LeetCode - Palindrome Number

Question

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.

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

Example 1:

Input: x = 121
Output: true
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

Example 3:

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

Example 4:

Input: x = -101
Output: false
Enter fullscreen mode Exit fullscreen mode

Constraints:

  • -231 <= x <= 231 - 1

Let's Go!

Solve by using PREP.

  • P - One parameter. A number x
  • R - Return true or false if palindrome
  • E - Examples provided by question. (See Above)
  • P - See Below
var isPalindrome = function(x) {
    // IF x is negative, RETURN false

    // Convert x to str and split into array
    // Invoke REDUCE method to reverse array and combine to single str
    // RETURN true or false based on comparing reversed str to x.toString()
};

Enter fullscreen mode Exit fullscreen mode

Translate into code...

var isPalindrome = function(x) {
    // IF x is negative, RETURN false
    if (Math.sign(x) === -1) return false
    // Convert x to str and split into array
    // Invoke REDUCE method to reverse array and combine to single str
    // RETURN true or false based on comparing reversed str to x.toString()
    return x.toString().split('').reduce((rev, char) => char + rev) === x.toString()
};

Enter fullscreen mode Exit fullscreen mode

Conclusion

& Remember... Happy coding, friends! =)

Sources

Top comments (0)