Reverse Integer失败

失败 没办法在string builder 转成int的时候判断是否越界

/*

注意:判断是否越界;

1将int 转成字符串;

2判断第一位是否是符号 是符号保留;

3建立stringbuilder 反向写入;

*/

class Solution {

    public int reverse(int x) {

        if(x < Integer.MIN_VALUE || x > Integer.MAX_VALUE){

            return 0;

        }



        String s = String.valueOf(x);

        StringBuilder rs = new StringBuilder();


        for(int i = s.length() - 1; i >= 0; i--){

            if(s.charAt(i) == '-'){

                rs.insert(0,'-');       

            }

            rs.append(s.charAt(i));

        }

        if(rs.charAt(0) == 0){

            rs.deleteCharAt(0);

        }

        if(rs.charAt(0) == '-' && rs.charAt(1) == 0){

            rs.deleteCharAt(1);

        }

        if(rs.charAt(rs.length() - 1) == '-'){

            rs.deleteCharAt(rs.length() - 1);

        }

        int result = Integer.parseInt(rs.toString());


        if(result < Integer.MIN_VALUE || result > Integer.MAX_VALUE){

            return 0;

        }

        return result;

    }

}

你可能感兴趣的:(Reverse Integer失败)