博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
整数反转(Go, LeetCode)
阅读量:4189 次
发布时间:2019-05-26

本文共 1038 字,大约阅读时间需要 3 分钟。

目录


 

题目描述

给出一个32位的有符号整数,你需要将这个整数中每位上的数字反转。对于溢出32位的数字则返回0。

输入/输出描述

输入 321
输出 123

 

解决方案

题目较为简单,需要在两个地方注意:

  • 输入的数字可能是负数。负数反转后还是负数
  • 反转后的数字如果超出32位,则需要返回0

 

代码

package mainimport "strconv"func reverse(x int) int {	positive := true	if x < 0 {		positive = false		x = -x	}	xStr := strconv.Itoa(x)	resultStr := ""	for i := len(xStr) - 1; i >= 0; i-- {		resultStr += string(xStr[i])	}	result, _ := strconv.Atoi(resultStr)	if !positive {		result = -result	}	if result < -(1<<31) || result > (1<<31)-1 {		result = 0	}	return result}

 

代码走读

package mainimport "strconv"func reverse(x int) int {   // 先判断x的正负性。记录后将x统一转换为正数(方便逆序)   positive := true   if x < 0 {      positive = false      x = -x   }   // 将x转换为字符串逆序,得到逆序后的字符串   xStr := strconv.Itoa(x)   resultStr := ""   for i := len(xStr) - 1; i >= 0; i-- {      resultStr += string(xStr[i])   }   // 根据先前记录的正负性,将逆序后的字符串还原为整数结果   result, _ := strconv.Atoi(resultStr)   if !positive {      result = -result   }   // 判断是否溢出32位   if result < -(1<<31) || result > (1<<31)-1 {      result = 0   }   return result}

 

传送门

转载地址:http://ccsoi.baihongyu.com/

你可能感兴趣的文章
一个“Spring轮子”引发的“血案”(4)
查看>>
一个“Sprng轮子”引发的“血案”(3)
查看>>
一个“Spring轮子”引发的“血案”(2)
查看>>
EasyJF开源网上会议系统iula-0.1.0发布
查看>>
一个“Spring轮子”引发的血案(1)
查看>>
世界杯与国产开源(五)-“君子剑”
查看>>
一个命令搞定Java Web通用添删改查及分页代码生成(音视频)
查看>>
EasyJWeb-0.6.0版本新功能简介
查看>>
EasyJWeb里程碑0.6.0版发布
查看>>
世界杯与国产开源(四)-为梦而生
查看>>
Spring中的Rod Johnson 与“轮子理论”
查看>>
世界杯与国产开源(三)-团队之星
查看>>
开源EasyJFShoppingOnline项目正式公开邀请行业精英
查看>>
编码讨论---乱码问题之终极解决
查看>>
EasyJFCMS项目正式启动,诚邀国内开源爱好者加入(附uml图)
查看>>
世界杯与国产开源(二)
查看>>
世界杯与国产开源(一)
查看>>
eclipse 中 Subversion 切换 帐号登陆
查看>>
庆祝世界杯开幕,EasyJF官网全站源码对外开放
查看>>
《80前的前辈,你们都做了些什么?!》一文的正确解读及是是非非
查看>>