[LeetCode] String to Integer (atoi)

KwonSC·2022년 2월 23일
0

LeetCode - Java

목록 보기
7/8
post-thumbnail

https://leetcode.com/problems/string-to-integer-atoi


Code

class Solution {
    public static int myAtoi(String s) {
        int sign = 1, i = 0, r = 0;
        s = s.trim();
        if (s.isEmpty()) {
            return 0;
        }
        else if (s.charAt(i) == '-') {
            i++; sign = -1; 
        }
        else if (s.charAt(i) == '+') {
            i++; 
        }
        while (i < s.length() && Character.isDigit(s.charAt(i))) {
            int d = s.charAt(i) - '0';
            if (r > (Integer.MAX_VALUE - d) / 10){
                return sign > 0 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
            }
            r = r * 10 + d;
            i++;
        }
        return r * sign;
    }
}

Solution

s를 trim하여 공백 제거 후 부호를 판단, 나머지 문자열을 돌면서 숫자면 각 자리로 정수를 만든다. 만들다가 int 범위를 초과하면 부호로 Integer의 최대, 최소값을 출력하고 아니면 최종적으로 부호와 만들어진 정수를 곱해서 출력한다.

0개의 댓글