Reverse Integer

Reverse Integer

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

Have you thought about this?

Here are some good questions to ask before coding. Bonus points for you if you have already thought through this!

If the integer’s last digit is 0, what should the output be? ie, cases such as 10, 100.

Did you notice that the reversed integer might overflow? Assume the input is a 32-bit integer, then the reverse of 1000000003 overflows. How should you handle such cases?

For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

非常easy的一道题。

例如以下:

public class Solution {    public int reverse(int x) {      if(x == 0){          return 0;      }      int fuhao = x >> 31 & 1;//1为负数      if(fuhao == 1){          x = -x;//转换成正数       }      StringBuffer sb = new StringBuffer();      while(x > 0){          sb.append(x%10);          x /= 10;      }      try{        x = Integer.parseInt(sb.toString());      }catch(Exception ex){          return 0;//转换之后的数据溢出      }      if(fuhao == 1){          x = -x;      }      return x;    }}

Runtime: 256 ms

注意题后的特殊情况,一个正常的数转换后可能出错,如input为1534236469,则retrun 0;

參考别人的代码,发现自己的思维固定在了Sstring上了,改进例如以下:

public class Solution {    public int reverse(int x) {      if(x == 0){          return 0;      }      int fuhao = x >> 31 & 1;//1为负数      if(fuhao == 1){          x = -x;//转换成正数       }      long x1 = 0;      while(x > 0){          x1 = x1 * 10 + x%10;          x /= 10;      }      if(x1 > Integer.MAX_VALUE || x1 < Integer.MIN_VALUE){//转换失败          return 0;      }      if(fuhao == 1){          x = -(int)x1;      }else{          x = (int)x1;      }      return x;    }}

Runtime:
217 ms

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117959.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux efi shell,EFI Shell

    linux efi shell,EFI Shell1.2.ItaniumSystems—TheEFIShellBeforeyoustarttoinstallRedHatEnterpriseLinuxonanItanium,youmusthaveabasicunderstandingoftheEFIShell,whatitdoes,andtheinformationitcanpro…

    2022年7月24日
    9
  • webstorm 2022.01.13 激活码【2021最新】

    (webstorm 2022.01.13 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/ide…

    2022年3月31日
    116
  • 如何彻底禁止易升更新Win10自动更新「建议收藏」

    如何彻底禁止易升更新Win10自动更新「建议收藏」Win10版本:家庭中文版64位版本1803[10.0.17134.285]]文章版本:v1.9最后修改日期:2019年5月11日正文第一步关闭系统更新服务下载WindowsUpdateBlockerv1.2,按照下图所示操作下载地址:点我第二步(禁止安装Windows易升):1打开C盘,在根目录下新建一个文件夹,将此文件夹重命名…

    2022年6月4日
    49
  • 广东电信 DNS 设置更改

    广东电信 DNS 设置更改因为未知原因(真的不知中国电信为何如此,有空打10000问问),原先广东电信用户可以使用的DNS服务器,如202.96.128.68202.96.128.110,不能使用了。因此,如果你的ADSL是使用路由方式共享上网的,并且手动设置了DNS服务器地址为以上ip,将会出现上不了网的情况。这就需要把DNS服务器地址更…

    2022年7月11日
    40
  • 多线程下HashMap的死循环问题

    多线程下HashMap的死循环问题

    2022年3月6日
    35
  • Awvs详细使用教程「建议收藏」

    Awvs详细使用教程「建议收藏」Awvs的是一款非常好用的web漏洞扫描工具,他的扫描速度比较快,可以自己选择扫描速度,比较灵活。Awvs分为老的版本和新版本,下面我介绍的是新版本的功能和用法。功能介绍如下:仪表盘(监视器)功能,添加目标功能,漏洞排序功能,扫描功能,发现功能,用户功能,扫描配置功能,网络扫描功能,追踪器功能,防火墙设置,邮件设置,引擎,时间排除功能,代理功能,常规设置主要使用的功能是前面的6个,后面的根据个人的需要进行配置详细介绍如下:Dashboard功能:翻译意思仪表盘(监视器),可以对扫描对扫描

    2022年10月22日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号