• 7. 整数反转


    题目描述

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

    示例 1:

    输入: 123
    输出: 321
    

     示例 2:

    输入: -123
    输出: -321
    

    示例 3:

    输入: 120
    输出: 21
    

    注意:

    假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

    解题思路:因为这道题涉及到整型数的溢出,首先想到的就是将整型转换为字符串类型,对字符串类型进行反转后再转化未整型。

    这里有一个问题,如果全程都使用int类型的数据,则再字符串转化为int的那个过程会出现问题,反转之后数据一旦大于INT_MAX或者小于INT_MIN,如果结构的数据类型是int,则会自动截取,而且也不能使用atoi来进行数据的转换,问题也是一样,一旦数据超出了int的范围,就会自动截取。所以这里我们使用atoll,将字符串转化为long long整型。



    class Solution { public: int reverse(int x) { int data = x; bool sign = true; if (data < 0) { data = data * -1; sign = false; } string str = to_string(data); int i = 0; int j = str.size()-1; while(i<j) swap(str[i++],str[j--]); long long reverse_data = atoll(str.c_str()); //这里是关键,使用atoll函数将字符串转化为long long 整型变量,超过INT_MAX也不会溢出 if(!sign) reverse_data = reverse_data * -1; if( (reverse_data>INT_MAX) || (reverse_data<INT_MIN)) reverse_data = 0; return reverse_data; } };
  • 相关阅读:
    随意记的一点 js 笔记
    关于 <video> 的兼容性测试
    placeholder 兼容 IE
    固定高度的多行文字垂直居中
    CSS 实现底部固定
    python学习之路基础篇(三)
    PyChram简单使用教程
    三级菜单的实现
    python序列化pickle/cPickle
    python解析json文件之简介
  • 原文地址:https://www.cnblogs.com/zhousong918/p/10102779.html
Copyright © 2020-2023  润新知