题目
https://leetcode-cn.com/problems/reverse-integer/
公众号 《java编程手记》记录JAVA学习日常,分享学习路上点点滴滴,从入门到放弃,欢迎关注
描述
给你一个 32
位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32
位的有符号整数的范围 [−231, 231 − 1]
,就返回 0
假设环境不允许存储 64
位整数(有符号或无符号)
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
Solution
解法
解题思路
反转整数的思路有哪些?
- 把整数变成字符串,再反转字符串,再转换整形,判断边界问题
- 通过栈数据结构,先从整数的尾部依次入栈,再出栈组合成新的数字
第一种整数变字符串,然后反转这种就不做介绍了,我们主要以栈结构这种思路来解题,这里我们不需要使用栈的数据结构,将整数的尾部依次取出,然后拼接到新的数字即可,如下图所示,通过取模拿到最后一位的结果数据,再依次拼接到最终的结果上即可,每次的结果就等于 res = res*10 + x%10
,当最后x
的值为0
,则整体运算结束,最后判断是否超越边界即可