LeetCode题库整理【Java】

7.整数反转

题目:给出一个32位的有符号整数,你需要将这个这个整数中每位上的数字进行反转。
示例1
输入: 123
输出: 321
示例2:
输入: -123
输出: -321
示例3:
输入: 120
输出: 21
注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, (2^31) −1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

思路:用一个StringBuilder(字符串生成器)类型的变量来存储数字中每一位上的值,通过对输入的int型数值采用取余的方式依次取出最后一位数字,数组越界的话使用 Integer.parseInt()会抛出异常,从而达到数组越界的判断

完整的Java测试代码如下:

public class IntegerInversion {public static void main(String[] args) {// TODO Auto-generated method stubint num=-123;IntegerInversion reversion=new IntegerInversion();reversion.reverse(num);}public int reverse(int x) {StringBuilder str=new StringBuilder();if(x<0) {  //保存负号,使x变为绝对值大小str.append('-');x = -x;}while(x>0) {str.append( x%10 );//逐次将x的最后一位数字加进str中x/=10;//取整}System.out.println(str);//用Integer.parseInt()函数抛出异常来判断反转后的字符串化为整型后是否越界try {return Integer.parseInt(str.toString());}catch(Exception e) {return 0;}}
}

显然,这种方法只遍历了一遍原来的数字,时间复杂度是O(n),n为输入数字的位数(包含负号)。至于空间复杂度,由于只用了一个长度为n的StringBuilder类型的变量,因此空间复杂度是O(n)。

参考博文:LeetCode007——反转整数https://blog.csdn.net/qq_41231926/article/details/81915741
:有一些博主使用long类型变量来存储转换后的结果进而判断是否越界,我觉得不符合题目中 “只能存储得下 32 位的有符号整数” 的假设,32位有符号整数应该是将数据类型限制为了int型, 所以我觉得不能使用long, 当然,此意见仅供参考。

LeetCode题库整理【Java】—— 7整数反转相关推荐

  1. LeetCode题库整理【Java】—— 2 两数相加

    LeetCode题库整理[Java] 2.两数相加 题目:给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果, ...

  2. LeetCode题库整理【Java】—— 1两数之和

    LeetCode题库整理[Java] 1.两数之和 题目:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数.你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nu ...

  3. LeetCode题库整理【Java】—— 3 无重复字符的最长子串

    LeetCode题库整理[Java] ## 3 无重复字符的最长子串 题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" ...

  4. LeetCode 题库 全 JAVA 解题---771.宝石与石头

    LeetCode 题库 全 JAVA 解题 771.宝石与石头 原题回顾: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥 ...

  5. 太理java题库_2020年Java题库整理

    2020年Java题库整理(WUST) 前言:去我的个人博客阅读效果更好哟. 知识点整理: 1.Java 语言具有跨平台性, 是一种面向对象的语言,程序具有可移植性,不可多继承. 2.Java的标准版 ...

  6. LeetCode题库解答

    此篇博客用于记录自己在 LeetCode 网站中所做过的习题,便于日后忘记了进行查阅.前期全部采用 Python3的语法来解答,后续时间充裕的话,希望自己可以试着用 JavaScript.C++/C ...

  7. LeetCode题库第867题 转置矩阵

    LeetCode题库第867题 转置矩阵 LeetCode题库第867题 转置矩阵 我首先想到的方法是新建一个二维的矩阵,然后遍历原来的矩阵,将每一个元素放在新矩阵中该放的位置: // javapub ...

  8. LeetCode题库第888题 公平的糖果棒交换

    LeetCode题库第888题 公平的糖果棒交换 LeetCode第888道题 公平的糖果棒交换 首先,题目中说他们两个人的糖果的总数量是不一样的,并且要将A中的一个糖果和B的一个糖果交换后使得他们两 ...

  9. LeetCode题库第2题 两数相加

    两数相加 LeetCode题库第二题 两数相加 看完题目,就可以将题目抽象为三个指针,前两个指针是l1和l2,后一个指针是我们要求的,这三个指针同时移动,由于可能会产生进位,所以可以用一个变量来存储这 ...

最新文章

  1. 实战:手把手教你用朴素贝叶斯对文档进行分类
  2. java 树状数组模板源码
  3. 12C OCP 1Z0-063 题库(8月以前)
  4. Redis的安装、配置 --转载
  5. JAVA运算符和优先级
  6. 计算机科学与技术专业《计算机网络原理》课程实验指导书,计算机科学导论,课程实验指导书解读.pdf...
  7. C++ int string 转换
  8. input或者button type=submit,设置disabled属性后,无法提交代码到后台
  9. DirectX Repair v4.2.0.40217 最新2022全能运行库系统修复工具增强版
  10. 安徽省计算机二级水平考试试卷,2010安徽省全国计算机等级考试二级笔试试卷VB试题及答案...
  11. fMRI数据分析处理原理及方法
  12. 实用网站汇总(不定期更新)
  13. matlab手动抠图,MATLAB可视化手动抠图
  14. 聊聊2022年广告联盟行业吧
  15. 2021安徽省安全员B证 多选题考试题库及答案
  16. 做小红书推广快速涨粉的技巧_云媒易
  17. MySQL索引及视图
  18. 计算机为什么设ip,怎么设置电脑ip
  19. Android 折叠屏适配最全的攻略在这里
  20. python代码风格程序越复杂越高级_Python中代码风格的改变和相应的性能优化

热门文章

  1. 求方程的解 Solve the Equation
  2. 10年老兵给程序员的10条建议!
  3. “□” 表情无法在 Android 设备显示? 快试试 EmojiCompact 表情兼容库
  4. 【SICP练习】22 练习1.28
  5. 在线批量压缩JPG图片-JpegMini
  6. linux系统用户迁移
  7. java box unboxing
  8. ASP.NET (C#) 面试笔试题目收集
  9. Python3.8安装 jupyter报错 NotImplementedError
  10. centos7与centos6区别