Diffculty
easy
Goto
Language
Explain
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward.
Example 1
Input: 121
Output: true
Example 2
Input: -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: 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
Follow up
Coud you solve it without converting the integer to a string?
Solve
func isPalindrome(x int) bool {
if x < 0 || (x != 0 && x%10 == 0) {
return false
}
if x < 10 {
return true
}
result, num := 0, x
for num != 0 {
result *= 10
result += num % 10
num /= 10
}
return result == x
}
Performance
Runtime: 12 ms, faster than 84.12% of Go online submissions for Palindrome Number.
Memory Usage: 5 MB, less than 75.00% of Go online submissions for Palindrome Number.