思路:这题比较简单,你可以用栈,用字符串等等,但最好还是用数学,需要注意溢出的情况。
fun reverse(x: Int): Int {
var origin = x
var rev = 0
while (origin != 0) {
val pop = origin % 10
origin /= 10
if (rev > Int.MAX_VALUE / 10 || (rev == Int.MAX_VALUE / 10 && pop > Int.MAX_VALUE % 10)) {
return 0
}
if (rev < Int.MIN_VALUE / 10 || (rev == Int.MIN_VALUE / 10 && pop < Int.MIN_VALUE % 10)) {
return 0
}
rev = rev * 10 + pop
}
return rev
}
相比较官方的-7 、8,换了评论区一个比较直观的写法。然后就不用看繁杂的解释了。
本站由以下主机服务商提供服务支持:
0条评论