7. 整数反转

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

Tips :

Math包给出的类型大小的边界:

  1. // Integer limit values.
  2. const (
  3. MaxInt8 = 1<<7 - 1
  4. MinInt8 = -1 << 7
  5. MaxInt16 = 1<<15 - 1
  6. MinInt16 = -1 << 15
  7. MaxInt32 = 1<<31 - 1
  8. MinInt32 = -1 << 31
  9. MaxInt64 = 1<<63 - 1
  10. MinInt64 = -1 << 63
  11. MaxUint8 = 1<<8 - 1
  12. MaxUint16 = 1<<16 - 1
  13. MaxUint32 = 1<<32 - 1
  14. MaxUint64 = 1<<64 - 1
  15. )

  

思路: Itoa --> 字符串反转 --> Atoi --> 判断大小

  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "math"
  6. "reflect"
  7. "strconv"
  8. "unsafe"
  9. )
  10.  
  11. //给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
  12.  
  13. // 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
  14.  
  15. func reverse(x int) int {
  16.  
  17. if x < 10 && x > -10 {
  18. return x
  19. }
  20.  
  21. flag := 1 // 正负标志位 1 表示为正, -1表示为负
  22. rst := x
  23.  
  24. if x < 0 {
  25. flag = -1
  26. rst *= flag // 转换为正数方便操作
  27. }
  28.  
  29. rstString := ""
  30. tmpString := strconv.Itoa(rst)
  31. for i:=len(tmpString)-1;i>=0;i--{
  32. rstString += string(tmpString[i])
  33. }
  34. //fmt.Println(rstString)
  35.  
  36. rst,err := strconv.Atoi(rstString)
  37. if err != nil || rst > math.MaxInt32{
  38. //fmt.Println("Atoi Error : ",err)
  39. return 0
  40. }
  41.  
  42. return rst * flag
  43. }
  44.  
  45. //-2147483648到2147483647
  46. // 9646324351
  47.  
  48. func main() {
  49. x := reverse(1534236469)
  50. fmt.Println(x,reflect.TypeOf(x),unsafe.Sizeof(x))
  51. }

  

LeetCode Golang 7. 整数反转的更多相关文章

  1. Leetcode(力扣) 整数反转

    Leetcode 7.整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例: 输入: -123 输出: -321 注意: 假设我们的环境只能存储得下 32 位的有符 ...

  2. 每日一道 LeetCode (2):整数反转

    题目:整数反转 题目来源:https://leetcode-cn.com/problems/reverse-integer 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示 ...

  3. python刷LeetCode:7. 整数反转

    难度等级:简单 题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123输出: 321 示例 2: 输入: -123输出: -321示例 3: ...

  4. 【LeetCode】7. 整数反转python3

    题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1:输入: 123 输出: 321  示例 2:输入: -123 输出: -321 示例 3:输入: 120 输出 ...

  5. 【LeetCode】7. 整数反转

    题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1:输入: 123 输出: 321  示例 2:输入: -123 输出: -321 示例 3:输入: 120 输出 ...

  6. 力扣(LeetCode)7.整数反转

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: ...

  7. leetcode题解:整数反转

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321  示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出 ...

  8. LeetCode刷题--整数反转(简单)

    题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 12 ...

  9. leetcode:7. 整数反转

    题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例: 输入: 123 输出: 321 输入: -123 输出: -321 输入: 120 输出: 21 注意:假 ...

随机推荐

  1. luogu 3467 [POI2008]PLA-Postering 单调栈

    题目描述: Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的 ...

  2. 路飞学城Python-Day79

    27-url控制器之path方法 由于基于re_path的路径编写方式是重复性高的编写url,如果规则改变了,则对应的要去修改很多url,这样是很不方便的 所以采用Django2.0的path去编写u ...

  3. python之异常处理模块

    一 . python 内置的异常类 在程序运行过程中,如果出现错误,python解释器会创建一个异常对象,并抛出给系统运行时.即程序终止正常执行流程,转而执行异常处理流程. 在某种特殊条件下,代码中也 ...

  4. GCJ 2008 Round 1A Minimum Scalar Product( 水 )

    链接:传送门 题意:给两个向量 v1 = { x1 , x2 , x3 , x4 .... } , v2 = { y1 , y2 , y3 , y4 ...... } 允许任意交换 v1 和 v2 各 ...

  5. js:Array对象常用方法介绍

    前言 在js中,数组作为一个特殊的对象.是我们常用的数据格式.今天就来梳理一下常用的数组方法. 1.基础 几种基础的就简单介绍一下:创建数组 var arr1 = new Array(); //括号可 ...

  6. solrj 操作 solr 单机版

    一.导入 jar 包 <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr- ...

  7. 2015 Multi-University Training Contest 10 hdu 5412 CRB and Queries

    CRB and Queries Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  8. MySQL 存储

    1.存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户 ...

  9. 自己定义Android Dialog

    private void showDialog() { mDialog = new Dialog(this); mDialog.setCanceledOnTouchOutside(true); Win ...

  10. 【Python】python网络协议

    套接字是常见的低级别的网络通讯协议,在此基础上,还有很多其他的网络通讯协议.用于实现client-server的网络互联,以下对这些协议做一个简单的介绍. 1.文件传输 FTP:文件传输协议.能够上传 ...