关于反转整数
Posted Rainlin随笔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于反转整数相关的知识,希望对你有一定的参考价值。
在leetcode上就见了这题:
经典的反转整数,遇见过很多次了,本以为很简单,分分钟码出来,结果却大失所望,哎,看来以后还是得多想想特殊情况呀~~
不多说,先把坑挖出来,一共两个坑:
1.反转后可能溢出,此时应该返回0;
2.关于尾数为0时,应舍去;
由于采用数学方法获取各位数,并非用文本反转,所以坑2就不用考虑了,
关键是坑1,如何判别溢出呢?可以通过获取INT_MAX和INT_MIN来辅助,由于是乘法溢出,故采用将最值除上相应值,这样避免判断最值情况。
一切尽在代码中:
class Solution { public: int reverse(int x) { int t = 0; while (x != 0) { if (t >INT_MAX / 10 || t <(INT_MIN) / 10) return 0; t= t * 10 + x % 10; x /= 10; } return t; } };
以上是关于关于反转整数的主要内容,如果未能解决你的问题,请参考以下文章