Leetcode 链接
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 }
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8