7.整数反转Java
题目描述
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
输入输出样式
示例1:
输入:x = 123
输出:321
示例2:
输入:x = -123
输出:-321
本题来自LeetCode:https://leetcode-cn.com/problems/reverse-integer/
思路
方法一:每次取输入数字的末尾一个数,依次实现反转。但是要注意溢出问题,因为这里允许32位不能用64位存储的long型。
方法二:利用字符串,将数字转化为字符串,调用字符串reverse方法。同时注意溢出和符号问题。
算法分析
时间复杂度O(log |x|),空间复杂度为O(1)
求解函数
public int reverse(int x) {
int rev =