본문 바로가기
알고리즘 문제/LeetCode

[LeetCode] 7. Reverse Integer (JAVA)

by 에르주 2021. 12. 11.
반응형
Question)

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

 

Example 1:

Input: x = 123
Output: 321

Example 2:

Input: x = -123
Output: -321

Example 3:

Input: x = 120
Output: 21

Example 4:

Input: x = 0
Output: 0

 

Constraints:

  • -231 <= x <= 231 - 1
    7. Reverse Integer
    Medium
    61018924Add to ListShare

    Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

    Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

     

    Example 1:

    Input: x = 123
    Output: 321
    

    Example 2:

    Input: x = -123
    Output: -321
    

    Example 3:

    Input: x = 120
    Output: 21
    

    Example 4:

    Input: x = 0
    Output: 0
    

     

    Constraints:

    • -231 <= x <= 231 - 1

 

Solution)

class Solution {
    public int reverse(int x) {
        
        String str = String.valueOf(x);
        String resultStr ="";
        
        String answer ="";
        
        boolean minusflag = false;
        
        if(str.charAt(0) == '-') {
            minusflag = true; // minus 일 때 체크
            str = str.substring(1); // -를 제외한 substring
        }
        
        for(int i=str.length()-1; i >=0; i--){
            resultStr += String.valueOf(str.charAt(i));
        }
        
        Long resultLong = Long.parseLong(resultStr);
        if(minusflag) resultLong *= -1;
        
        if(resultLong > Integer.MAX_VALUE || resultLong < Integer.MIN_VALUE) { return 0; } // max값 범위 체크

        return resultLong.intValue();
        
    }
}

반응형

댓글