zoukankan      html  css  js  c++  java
  • LeetCode 7. 反转整数(Reverse Integer)

    题目描述

    给定一个 32 位有符号整数,将整数中的数字进行反转。

    示例 1:

    输入: 123
    输出: 321
    

     示例 2:

    输入: -123
    输出: -321
    

    示例 3:

    输入: 120
    输出: 21
    

    注意:

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

    解题思路

    反转整数的思路是从一个数的最后一位开始,依次向前遍历,每次反转整数依次左移一位,并取出一位数作为新数的末位数。具体而言首先定义反转以后的数res初始为0,当x不为0时循环:

    • 记录temp=res*10+x%10,此时temp即为遍历到当前位之前的反转整数
    • 然后比较temp/10与res是否相等,如果整数不溢出显然相等,否则说明反转后的整数溢出,直接返回0
    • 最后把temp赋值给res,并令x=x/10,即去掉最后一位,继续反转之前的数字

    代码

     1 class Solution {
     2 public:
     3     int reverse(int x) {
     4         int res = 0;
     5         while(x){
     6             int temp = res * 10 + x % 10;
     7             if(temp / 10 != res)
     8                 return 0;
     9             res = temp;
    10             x /= 10;
    11         }
    12         return res;
    13     }
    14 };
  • 相关阅读:
    mogodb优化
    uuid
    ssl详解
    探究rh6上mysql5.6的主从、半同步、GTID多线程、SSL认证主从复制
    CMAKE MYSQL
    证书生成
    叶金荣主页
    mysqlslap
    sysbench 测试MYSQL
    mysql实验室
  • 原文地址:https://www.cnblogs.com/wmx24/p/9149916.html
Copyright © 2011-2022 走看看