标签:
问题描述:
Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
输入一个整形数字,然后输出它的反转
需要注意的是,int形变量的反转有可能是超过int的限制的,比如12345678999的反转,就会overflow,leetcode要求如果出现这种状况就要return 0.
思路是从末位循环获取输入数字每一位的值,放到新的数字中.返回数字的类型先设定为long ,如果超出int的界限,就return 0.
class Solution { public: long reverse(int x) { // Start typing your C/C++ solution below // DO NOT write int main() function int sign = x > 0 ? 1 : -1; x = abs(x); long ret = 0; while(x) { int digit=x%10; ret=ret*10+digit; x/=10; } if(abs(ret)>INT_MAX) return 0; return ret * sign; } };
标签:
原文地址:http://www.cnblogs.com/zeakey/p/4578470.html