1. /**
  2. * Source : https://oj.leetcode.com/problems/reverse-integer/
  3. *
  4. * Created by lverpeng on 2017/7/4.
  5. *
  6. * Reverse digits of an integer.
  7. *
  8. * Example1: x = 123, return 321
  9. * Example2: x = -123, return -321
  10. *
  11. *
  12. * Have you thought about this?
  13. *
  14. * Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!
  15. *
  16. * > If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.
  17. *
  18. * > Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer,
  19. * then the reverse of 1000000003 overflows. How should you handle such cases?
  20. *
  21. * > Throw an exception? Good, but what if throwing an exception is not an option?
  22. * You would then have to re-design the function (ie, add an extra parameter).
  23. *
  24. */
  25. public class ReverseInteger {
  26. /**
  27. * 翻转一个int类型的数,几种特殊情况考虑
  28. * 1. 末尾是零的处理方式:去掉
  29. * 2. 溢出:一种方式注解返回0,一种是当做无符号int输出
  30. *
  31. * 从右至左取出每一位数,然后组成新的数
  32. * 取余,整除的方法
  33. *
  34. * @param num
  35. * @return
  36. */
  37. public int reverse (int num) {
  38. int temp = 0;
  39. int result = 0;
  40. while (num != 0) {
  41. // 判断溢出
  42. if (result > Integer.MAX_VALUE / 10 || result < Integer.MIN_VALUE / 10) {
  43. // 溢出返回0
  44. return 0;
  45. }
  46. // 最后一位数
  47. temp = num % 10;
  48. result = result * 10 + temp;
  49. // 去除最后一位
  50. num = num / 10;
  51. }
  52. return result;
  53. }
  54. /**
  55. * 溢出不返回0,返回翻转后的数,使用long表示
  56. * @param num
  57. * @return
  58. */
  59. public long reverse1 (int num) {
  60. int temp = 0;
  61. long result = 0;
  62. while (num != 0) {
  63. // 最后一位数
  64. temp = num % 10;
  65. result = result * 10 + temp;
  66. // 去除最后一位
  67. num = num / 10;
  68. }
  69. return result;
  70. }
  71. public static void main(String[] args) {
  72. ReverseInteger reverseInteger = new ReverseInteger();
  73. System.out.println(reverseInteger.reverse(123) + " === " + "321");
  74. System.out.println(reverseInteger.reverse(-123) + " === " + "-321");
  75. System.out.println(reverseInteger.reverse(-100) + " === " + "-1");
  76. System.out.println(reverseInteger.reverse(1002) + " === " + "2001");
  77. System.out.println(reverseInteger.reverse(123) + " === " + "321");
  78. System.out.println(reverseInteger.reverse(1463847412) + " === " + "2147483641");
  79. System.out.println(reverseInteger.reverse(2147447412) + " === " + "2147447412");
  80. System.out.println(reverseInteger.reverse(2147447412) + " === " + "2147447412");
  81. // overfow
  82. System.out.println(reverseInteger.reverse(1000000003) + " === " + "0");
  83. System.out.println(reverseInteger.reverse(2147483647) + " === " + "0");
  84. System.out.println(reverseInteger.reverse(-2147483648) + " === " + "0");
  85. System.out.println("");
  86. System.out.println("-------------");
  87. System.out.println("");
  88. //
  89. System.out.println(reverseInteger.reverse1(123) + " === " + "321");
  90. System.out.println(reverseInteger.reverse1(-123) + " === " + "-321");
  91. System.out.println(reverseInteger.reverse1(-100) + " === " + "-1");
  92. System.out.println(reverseInteger.reverse1(1002) + " === " + "2001");
  93. System.out.println(reverseInteger.reverse1(123) + " === " + "321");
  94. //
  95. System.out.println(reverseInteger.reverse1(1463847412) + " === " + "2147483641");
  96. System.out.println(reverseInteger.reverse1(2147447412) + " === " + "2147447412");
  97. System.out.println(reverseInteger.reverse1(2147447412) + " === " + "2147447412");
  98. // overflow
  99. System.out.println(reverseInteger.reverse1(1000000003) + " === " + "3000000001");
  100. System.out.println(reverseInteger.reverse1(2147483647) + " === " + "7463847412");
  101. System.out.println(reverseInteger.reverse1(-2147483648) + " === " + "-8463847412");
  102. }
  103. }

leetcode — reverse-integer的更多相关文章

  1. LeetCode: Reverse Integer 解题报告

    Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, retur ...

  2. [LeetCode] Reverse Integer 翻转整数

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 click to ...

  3. C++ leetcode::Reverse Integer

    第一天上课,数据库老师说对于计算机系的学生,凡是在课本上学到的专业知识都是过时的.深以为然,感觉大学两年半真的不知道学了什么,为未来感到担忧,C++也不敢说是精通,入门还差不多.最近丧的不行,不管怎么 ...

  4. [Leetcode] reverse integer 反转整数

    Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 click to ...

  5. LeetCode——Reverse Integer(逆置一个整数)

    问题: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return –321   Ha ...

  6. Leetcode: Reverse Integer 正确的思路下-要考虑代码简化

    题目: Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 Have ...

  7. leetcode:Reverse Integer【Python版】

    1.在进入while之前,保证x是非负的: 2.符号还是专门用flag保存 =================== 3.另一思路:将integer转换成string,然后首位swap,直至中间: cl ...

  8. LeetCode——Reverse Integer

    Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 Have you ...

  9. [Leetcode]Reverse Integer

      核心思想:原数对10取余数赋值给新数后降一位,再把新数升一位加上下一次原数取余值,直到原数降为0. 解法如下: int reverse(int x) { bool minus = false; ) ...

  10. leetcode reverse integer&&Palindrome Number

    public class Solution { public int reverse(int x) { int ret=0; while(x!=0) { int t=x%10; ret=ret*10+ ...

随机推荐

  1. org.apache.hadoop.security.AccessControlException

    在hdfs集群上,需要向Hdfs写入文件,控制台会输出以下错误信息: Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoo ...

  2. Vc 检测内存泄漏

    启用内存泄漏检测 检测内存泄漏是 C/c + + 调试器和 C 运行时库 (CRT) 的主要工具调试堆函数. 若要启用调试堆的所有函数,在 c + + 程序中,按以下顺序包含以下语句: C++复制 # ...

  3. @Scheduler与cron

  4. Jmeter利用CSV Data Set Config 和 _CSVRead函数实现参数化

    测试接口时,当请求参数不是固定的,每次请求对应的参数都是不同的,就需要对请求参数进行参数化.我们这里简单介绍一下5个用户与一个用户建立好友关系. 一.测试需求描述 1. 本次测试的接口为http服务端 ...

  5. /bin/bash: /bin/java: Is a directory 解决

    Hadoop执行 mapreduce报错 -- ::, INFO mapreduce.Job: map % reduce % -- ::, INFO mapreduce.Job: Job job_15 ...

  6. Linux学习--- C语言关键字、数据类型

    关键字: sizeof为关键字,并不是函数. 作用:编译器给我们查看内存空间容量的一个工具. eg:int a: printf("the size is %d\n",sizeof ...

  7. xml配置文件中常见的命名空间解释

    1.1schema文档即xml schema document,schema文件的格式是.xsd(xml schema document的缩写xsd). 简单来说:schema就是对xml的进一步约束 ...

  8. MySQL八、备份和还原

                MySQL 八.数据库备份和还原       1.二进制日志相关配置     1)查看使用中的二进制日志文件列表,及大小   SHOW {BINARY | MASTER} LO ...

  9. TortoiseSVN与TortoiseGit

    TortoiseSVN与TortoiseGit 功能:版本控制+备份处理 差异:SVN二段式,没有中间存储点,直接提交后到达了远程存储点:要想对本地的修改进行记录,必须要与SVN服务器进行通讯,无法只 ...

  10. 谈谈最近的想法和 Thoughtworks 的 Offer

    最近笔者一直没有记录博客,原因是因为卷入了面试,离职,谈判,思考等一系列事件中.不过可以先说明一下的是, 笔者最后还是拒绝了 Thoughtworks 的 Offer,继续留在目前的公司. 去年毕业后 ...