(leetcode)数位反转

来源:互联网 发布:php技术论坛 编辑:程序博客网 时间:2024/06/05 18:10
今天做的数位反转还比较简单,唯一需要注意的是,得考虑溢出问题。比如123反转321,这没问题,但要是10000009,这个数本身没超过int的范围,但反转之后就超出了。

说来惭愧,这个问题还是等WA了一次之后,看提示才知道的,果然很久没有严谨地思考问题了。解决也很简单,首先用一个longlong的数存下转换的结果,用numeric_limits::max()和numeric_limits::min()取得int的范围,超过范围返回0就行。

另一点是,把longlong这个数转换为int,用了c++风格的强制转换,Primer里面说得太细,简而言之就是:
const_cast,字面上理解就是去const属性。
static_cast,命名上理解是静态类型转换。如int转换成char。
dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。
reinterpreter_cast,仅仅重新解释类型,但没有进行二进制的转换。

这里使用的是static_cast。
原创粉丝点击