流水沉微

9. Palindrome Number

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

play.golang.org/p/jAV1vCnLOx3

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.