問題:Palindrome Number
渡された入力値が、後ろから読んでも前から読んでも同じ整数だった場合、trueを返せよ。
同じでなかった場合はfalseを返す。
例:
input: 1234321
return: true
input: 6776
return: true
input 14356
return: false
ヒント:
入力値を全部逆さまに並べて、最初の入力値と比較するとよし。
解答:
func isPalindrome(_ x: Int) -> Bool {
let originalX = x
var xNew = abs(x)
var reversed = 0
while xNew > 0 {
reversed = reversed * 10 + xNew % 10
xNew = xNew / 10
}
if reversed > Int(Int32.max) || reversed < Int(Int32.min) {
reversed = 0
}
return reversed == originalX
}