当前位置: 代码迷 >> 综合 >> 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转
  详细解决方案

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转

热度:4   发布时间:2024-02-13 06:02:11.0

第一版,贼low

public int reverse(int x) {StringBuilder sb = new StringBuilder();String str = String.valueOf(x);if(x<0) {sb.append(str.charAt(0));str = str.substring(1);}for(int i=str.length(); i>0;i--) {sb.append(str.charAt(i-1));}try {return Integer.parseInt(sb.toString());}catch (Exception e) {return 0;}}

参考解题方案,大佬代码后的解题

public int reverse(int x) {int result = 0;while (x != 0) {//倒着获取数值int num = x % 10;//判断是否溢出if(result > Integer.MAX_VALUE/10 || (result == Integer.MAX_VALUE/10 && num > 7)) return 0;if(result < Integer.MIN_VALUE/10 || (result == Integer.MIN_VALUE/10 && num < -8)) return 0;//计算,倒着相加result = result * 10 + num;//循环条件x = x / 10;}return result;}

继续参考优秀代码,有了再更新。

  相关解决方案