判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121 输出: true
示例 2:
输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。
解法:
整数反转,再与反转前判断是否相等
class Solution { func isPalindrome(_ x: Int) -> Bool { // 0是回文数 if x == 0 { return true } // 排除负数以及可以整除10的数 if x < 0 || x % 10 == 0 { return false } // 保存旧值 let old = x var X = x var reverse = 0 while X != 0 { reverse = reverse * 10 + X % 10 X /= 10 } // 反转后的数字如果和旧值相同就是回文数 return old == reverse } }
整数转字符串,字符串反转,再与反转前判断是否相等
class Solution { func isPalindrome(_ x: Int) -> Bool { let str: String = String(x) return String(str.reversed()) == str } }