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?
判断一个数字是否为回文串
func isPalindrome(x int) bool {
s := strconv.Itoa(x)
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
if s[i] != s[j] {
return false
}
}
return true
}
不需要把数字转为字符串。首先,如果这个数是负数,那么就不是回文串,返回false。如果不是负数,那么就对数字取模并存入数组,通过数组来做回文串判断。
func isPalindrome(x int) bool {
if x < 0 {
return false
}
arr := make([]int, 0)
for x!=0 {
arr = append(arr, x%10)
x /= 10
}
for i,j := 0,len(arr)-1; i<j; i,j=i+1,j-1 {
if arr[i] != arr[j] {
return false
}
}
return true
}