• leetcode #7 revert integer 问题


    问题描述:

    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;
        }
    };
  • 相关阅读:
    SDOI2019游记
    noi.ac309 Mas的童年
    51nod1237 最大公约数之和
    loj6074 子序列
    noi.ac89A 电梯
    51nod97B 异或约束和
    bzoj4490 随机数生成器Ⅱ加强版
    CF55D Beautiful numbers
    CF24D Broken robot
    CF226D The table
  • 原文地址:https://www.cnblogs.com/zeakey/p/4578470.html
Copyright © 2020-2023  润新知