回文数
题目链接: https://leetcode.cn/problems/palindrome-number
解题思路:
将数字翻转一半
如果 等于反转的数字或者 等于反转的数字除以
10
(去掉中间的数字),那么 是回文数
func isPalindrome(x int) bool {
// 如果x是负数或者x的个位数是0但x不是0,那么x不是回文数
if x < 0 || (x%10 == 0 && x != 0) {
return false
}
// 将x的数字反转,直到反转的数字大于等于x
var reversed int
for x > reversed {
reversed = reversed*10 + x%10
x /= 10
}
// 如果x等于反转的数字或者x等于反转的数字除以10(去掉中间的数字),那么x是回文数
return x == reversed || x == reversed/10
}
复杂度分析
时间复杂度: 时间复杂度是 ,其中 是输入的整数
空间复杂度: 空间复杂度是 ,函数只使用了常数个变量来存储中间结果,没有使用额外的空间
最后更新于
这有帮助吗?