网站首页 返回列表 像“草根”一样,紧贴着地面,低调的存在,冬去春来,枯荣无恙。 leetcode基础算法学习之ReverseInt 23-10-22 14:28:39 字节波 314 ### 习题四: 给定32位有符号整数,整数的反向数字。反向整数溢出时,函数返回0。 Input: `123` Output: `321` Input: `-123` Output: `-321` Input: `120` Output: `21` ### 解题思路: 第一直觉可以与反转字符串类似地完成反转整数。但这显然是不正确的做法,我们可以利用简单的数学算法,巧妙的反转过来,首先找到规律,反转前的个位数将会作为反转后的最高位,以此类推,这里需要注意的是题目给定的是32位有符号的整数,整数存在边界即最大值或最小值,加入反转之后得到的整数溢出边界,则要返回0。 ### 实现代码: ```go package main import ( "math" "fmt" ) func reverse(x int) int { rev := 0 for x != 0 { pop := x % 10 x /= 10 if rev > math.MaxInt32/10 || (rev == math.MaxInt32/10 && pop > 7) { return 0 } if rev < math.MinInt32/10 || (rev == math.MinInt32/10 && pop < -8) { return 0 } rev = rev * 10 + pop } return rev } func main() { fmt.Println(reverse(123)) fmt.Println(reverse(-123)) fmt.Println(reverse(120)) } ``` 输出: ```go 321 -321 21 ``` ### 知识点: 1. 整数边界的处理 2. 处理整数最常用的整除算法 关键字词[算法] 分享到: 上一篇:leetcode基础算法学习之LongestSubstr 下一篇:leetcode基础算法学习之maxArea 如需留言,请 登录,没有账号?请 注册 0 条评论 0 人参与 最新文章 Dapp合约开发指南 ansible学习记录-远程开启exe不能挂起UI界面 leetcode基础算法学习之maxArea leetcode基础算法学习之ReverseInt leetcode基础算法学习之LongestSubstr leetcode基础算法学习之addTwoNumbers leetcode基础算法学习之FindIndex CentOS7安装nginx服务 点击排行 优雅的语言开发优雅的站点 Beego框架第1节——环境与初始 Golang学习笔记之匿名函数与闭包 Golang学习笔记之interface Dapp合约开发指南 最新评论 字节波 官方 1年前 你好,可以,麻烦你的站点做好友链 字节波 官方 1年前 欢迎各界人士评论留言,注意要遵守法律法规,祝每一位... 友情链接 BYTE STUDIO 字节波 ByteWave 360导航 360安全浏览器
0 条评论 0 人参与