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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JavaScript 数组排序函数sort()的使用

    JavaScript 数组排序函数sort()的使用简介  sort()方法是js中对于数组进行排序的函数。其可以方便快捷的实现对于数组的排序而不用我们自己编写排序方法。注:sort()函数会直接改变原数组。1.纯字符串数组排序letmyArray=[“people”,”person”,”apple”,”ziv”]console.log(myArray.sort())//打印结果[‘apple’,’people’,’person’,’ziv’]  其对于字符串数组直接按照字典顺序进行排序。注意:大小写字母也会影响排序结果,大

    2022年5月20日
    42
  • mediumtext_text长度不够用,改为mediumtext感觉 又太大,有没什么方法?

    mediumtext_text长度不够用,改为mediumtext感觉 又太大,有没什么方法?楼主先要搞清楚,text和longtext这些都是可变长度的字段类型.这是phpMyAdmin里的说明:text:最多存储65535(2^16-1)字节的文本字段,存储时在内容前使用2字节表示内容的字节数.longtext:最多存储4294967295字节即4GB(2^32-1)的文本字段,存储时在内容前使用4字节表示内容的字节数.也就是说,你在longtext类型的字段里只存1个字符,占用空…

    2022年5月1日
    80
  • vue引入文件(.js)「建议收藏」

    vue引入文件(.js)「建议收藏」exportdefaulta;(曝光)importafrom’../assets/js/a’(引入)

    2022年10月7日
    3
  • batch内负采样

    batch内负采样一般在计算softmax交叉熵时,需要用tf.nn.log_uniform_candidate_sampler多itemid做随机负采样。但是在类似dssm这种双塔模型中,item侧特征除了itemid外,还有其他meta特征,此时负样本对itemid做负采样后,还需要取相应负样本的meta特征。可是在tf训练数据中并不方便建立itemid与各类meta特征的映射表。为了解决dssm类模型的负采样问题,可以取一个batch内其他用户的正样本做为本用户的负样本,以解决负采样meta特征问题。好了,废话少说,

    2022年6月23日
    65
  • typedef int ElemType

    typedef int ElemType1  typedefintElemType;为什么呀,我倒是知道后面用ElemType定义别的数据类型,看起来是把ElemType和int一样啦,那直接用int不用行了,为什么要用ElemType.这是定义一个线性表元素类型的最佳答案定义不同的数据类型名称是为了程序的可读性.而且一旦你需要将类型变换比如使用double型的了,只要写:typedefd

    2022年5月12日
    43
  • Vue的基本模板

    Vue的基本模板<!–1.Vue框架使用方式1.1传统下载导入使用1.2vue-cli安装导入使用2.Vue框架使用步骤2.1下载Vue框架2.2导入Vue框架2.3创建Vue实例对象2.4指定Vue实例对象控制的区域2.5指定Vue实例对象控制区域的数据–><!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><title>02-Vu

    2022年7月24日
    12

发表回复

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

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