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)
上一篇 2021年12月15日 下午6:00
下一篇 2021年12月15日 下午7:00


相关推荐

  • elasticsearch-倒排索引原理

    elasticsearch-倒排索引原理

    2021年10月23日
    55
  • select函数详解

    select函数详解select 函数详解背景说明定义介绍 参数说明原理返回值 pselect 总结案例案例 1 案例 2 说明 本文整合网络资源和 man 帮助文档 请酌情参考 背景 select 函数是实现 IO 多路复用的一种方式 什么是 IO 多路复用 举一个简单地网络服务器的例子 如果你的服务器需要和多个客户端保持连接 处理客户端的请求 属于多进程的并发问题 如果创建很多个进程来处理这些 IO 流 会导致 CPU 占有率很高 所以人

    2026年3月19日
    2
  • PKI体系框架「建议收藏」

    PKI体系框架「建议收藏」  PKI是PublicKeyInfrastructure的缩写,主要功能是绑定整数持有者的身份和相关秘钥对(通过为公钥及相关的用户身份信息签发数字证书),为用户提供方便的证书申请、证书作废、证书获取、证书状态查询的途径,并且利用数字证书及相关的各种服务(证书发布、黑名单机制、时间戳服务等)实现通信中各实体的身份认证、完整性、抗抵赖性和保密性。  根据数字证书格式和密钥管理方式的不同,PK…

    2022年8月22日
    9
  • 开发智能体Agent核心技术:LLM集成与工具调用详解

    开发智能体Agent核心技术:LLM集成与工具调用详解

    2026年3月15日
    1
  • AD域安装

    AD域安装https://www.cnblogs.com/BugBrother/p/6760504.html

    2022年5月13日
    44
  • C语言实现函数重载

    C语言实现函数重载C 语言实现函数重载 c 语言中不允许有同名函数 因为编译时函数命名是一样的 不像 c 会添加参数类型和返回类型作为函数编译后的名称 进而实现重载 如果要用 c 语言显现函数重载 可通过以下方式来实现 使用函数指针来实现 重载的函数不能使用同名称 只是类似的实现了函数重载功能 重载函数使用可变参数 方式如打开文件 open 函数 gcc 有内置函数 程序使用编译函数可以实现函数重载示例如下

    2026年3月17日
    4

发表回复

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

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