目录
题目描述
判断一个整数是否是回文数。回文数是指正序(从左到右)和逆序(从右到左)都是一样的整数。
输入/输出示例
输入 | -121 |
输出 | false |
解释 | 因为-121的逆序是121-,与121不同,因此不是回文数。 |
解决方案
经过观察可以判断出,负数一定不是回文数。自然数中,小于10以下的数字都是回文数。对于大于等于10以上的正整数,我们将其转换为字符串,从两端读取字符,判断其是否相等,若一直保持相等,则为回文数。
代码
package main
import (
"fmt"
"strconv"
)
func isPalindrome(x int) bool {
if x < 0 { return false }
if x >= 0 && x <= 9 { return true }
sString := strconv.Itoa(x)
length := len(sString)
palindrome := true
for i := range sString {
j := length - 1 - i
if i > j {
break
}
if sString[i] != sString[j] {
palindrome = false
break
}
}
return palindrome
}
代码走读
package main import ( "strconv" ) func isPalindrome(x int) bool { // 如果x为负数,肯定不是回文数 if x < 0 { return false } // 如果x为一位数,则肯定是回文数 if x >= 0 && x <= 9 { return true } // 将x转换为字符串,使用左右两个指针检查每位数是否相等。若其中一个不相等则跳出循环并返回false sString := strconv.Itoa(x) length := len(sString) palindrome := true for i := range sString { j := length - 1 - i if i > j { break } if sString[i] != sString[j] { palindrome = false break } } return palindrome }
传送门
LeetCode试题连接https://leetcode-cn.com/problems/palindrome-number/submissions/
strconv.Itoa函数https://blog.youkuaiyun.com/TCatTime/article/details/120108417