leetcode-Easy(JAVA)7.整数反转
由于我是选择先把所有简单难度题型刷完,所以这里可能并非按照LeetCode的题号顺序来,没关系吧,嘻嘻。
题目:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:
输入: -123
输出: -321
示例 3:
输入: 120
输出: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
分析:
既然看到了32位,那我首先就是觉得long没跑了,而且看题目给的溢出说明,我们要单独分析这种情况,之后看具体问题是为了整数反转,接下来我们分析具体流程
关于正负(本题里面牵扯的运算对正负号没有关系,所以根本无需分正负,但某些同学看到这个示例以后可能会产生误解)
如何反转(如果这是一个数组,相比大家都会更加容易产生思路,而此处其实我们可以试着以数组的思路来解决这个问题,相当于一个整数数组,我们要遍历每一个数字,但实际上这么操作起来肯定是过于麻烦的,因此我们试着思考如何通过一个整数得到他的每一位数字,我想这个问题大家都只要需要取余以及除法运算了)
关于运算(除法运算:我们可以考虑一个数字除以10在计算机中得到的整数结果如何?例如:123/10,在计算机中实际上得到整数结果是12(也就是抹去了低位数字之后的留下来的数字);求余运算:我们可以考虑一个数字求余10在计算机中得到的整数结果如何?例如:123%10,在计算机中实际上得到的整数结果是3(也就是低位数字))
这个时候,你可以依靠两种运算获取较高位的数字,以及低位数字,反转正是将地位变为高位,高位变为低位,只需要循环即可。
或许描述不够清楚,但是你看到了下面的代码就一定能明白。
核心代码:
public int reverse(long x){ long result = 0; while(x!=0){ result = result*10+x%10;//此处便可以吧result当作是已经反转的部分数字,低位由于*10所以变高位,原高位被加上变为了低位 x/=10; } if(result>Integer.MAX_VALUE||result<Integer.MIN_VALUE){ return 0; } return (int)result; }
可运行代码:
package com.leetcode.easy; import java.util.Scanner; public class Reverse_Two { public static int reverse(long x){ long result = 0; while(x!=0){ result = result*10+x%10; x/=10; } if(result>Integer.MAX_VALUE||result<Integer.MIN_VALUE){ return 0; } return (int)result; } public static void main(String[] args){ long x; Scanner sc = new Scanner(System.in); x = sc.nextLong(); System.out.println(reverse(x)); } }
- LeetCode 7.整数反转(Java)
- 【leetcode】Reverse Integer整数反转----Java代码实现
- leetcode-Easy(JAVA)13. 罗马数字转整数
- LeetCode-探索-初级-字符串-整数反转-java
- Java&LeetCode 初入门——007. 整数反转
- Leetcode题库-整数反转(java语言版)
- leetcode 7. 整数反转(Java版)
- leetcode解题之191 # Number of 1 Bits Java版 (整数对应的二进制中1的个数)
- 用java解leetcode上的easy题(开始探险)
- LeetCode-Python-7. 整数反转
- LeetCode-Easy-Java-Count Binary Substrings
- LeetCode 13.罗马数字转整数(Java)
- (Java) LeetCode 273. Integer to English Words —— 整数转换英文表示
- leetcode的python实现 刷题笔记7: 反转整数
- leetcode-java.T016_threeSumClosest---给定包含n个整数数组S,找到S中的三个整数,从而使之和最接近给定的数,返回三个整数的总和.
- LeetCode 7. Reverse Integer 整数反转
- leetcode 反转三十二位有符号数 java
- [LeetCode-7] Reverse Integer(反转整数)
- LeetCode7.python实现:整数反转问题☆
- 【LeetCode】- Reverse Integer(将一个整数反转)