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).
class Solution {
public int reverse(int x) {
String strX = String.valueOf(x);
StringBuffer sb = new StringBuffer();
String tmp;
long longAnswer;
int answer = 0;
if (x < 0){
sb.append("-");
tmp = strX.substring(1);
} else {
tmp = strX;
}
for (int i = tmp.length() - 1; i > -1; i--) {
sb.append(tmp.charAt(i));
}
int maxInt = Integer.MAX_VALUE;
int minInt = Integer.MIN_VALUE;
longAnswer = Long.parseLong(String.valueOf(sb));
if (minInt <= longAnswer && longAnswer <= maxInt){
answer = (int) longAnswer;
}
return answer;
}
}
int x
를 문자열로 바꾼다.int x
가 음수라면 "-"
를 스트링버퍼 값인 sb
에 추가한다. 그리고 "-"
기호를 뺀 부분을 String tmp
에 넣는다.int x
가 양수라면 그대로 String tmp
에 넣는다.tmp
길이만큼 for문을 역순으로 돌면서 sb
에 값을 추가한다.longAnswer
란 값을 만들어 sb
를 넣는다.