目录
题目描述
判断一个整数是否是回文数。回文数是指正序(从左到右)和逆序(从右到左)都是一样的整数。
输入/输出示例
| 输入 | -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

该博客讨论了如何使用Go语言解决LeetCode上的回文数问题。文章首先介绍了回文数的概念,然后通过示例解释了判断一个整数是否为回文数的方法。接着,提供了将数字转换为字符串并比较其正反序是否相同的代码实现,并提供了代码走读的详细解析。最后,给出了LeetCode试题的具体链接供读者进一步学习。
502

被折叠的 条评论
为什么被折叠?



