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
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
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()
};
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()
};
Conclusion
& Remember... Happy coding, friends! =)
Discussion (0)