第一版,贼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;}
继续参考优秀代码,有了再更新。