[LeetCode] 4.Reverse Integer
leetcode.com/problems/reverse-integer/
1. Problem
Given a 32-bit signed integer, reverse digits of an integer.
Note:
Assume we are dealing with an environment that could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
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
2.Code
package leetCode;
public class ReverseInteger {
public static void main(String[] args) {
int x = -123;
System.out.println(reverse(x)); //확인
}
public static int reverse(int x) {
try {
boolean negative = false;
if(x < 0) {
negative = true;
x = x * -1;
}
String sNum = Integer.toString(x);
sNum = (new StringBuffer(sNum)).reverse().toString();
int result = Integer.parseInt(sNum);
if(negative) {
result = result * -1;
}
return result;
} catch(NumberFormatException e) {
return 0;
}
}
}
3.Report
x를 int형인 상태로 바꾸려고 하니까 까다롭고 마이너스일때나 0이 많이 들어가있을때 오류가 생겼다
String으로 변환해준 다음 뒤집기는 굉장히 간단!
String을 뒤집는 방법에는 char형으로 받는 법이 있고 Buffer를 쓸 수 도 있었다.
친구는 string을 long 타입으로 변환해서 int의 max값보다 큰 지 비교했다는데 무슨 소린지 모르겠어서
그냥 try catch를 썼다..
4.Learned
-Int to String : Integer.toString(x);
-String tp Int : Integer.pareInt(x);
-reverseString : (new StringBuffer(s)).reverse().toString();
5.Others
char 사용해보기
long타입으로 int_max값 측정해보기
'Algorithm > 문제' 카테고리의 다른 글
[LeetCode] 6.Merge Two SortedLists (0) | 2020.12.30 |
---|---|
[LeetCode] 5.Palindrome Number (0) | 2020.12.29 |
[LeetCode] 3.Roman to Integer (0) | 2020.12.28 |
[LeetCode] 2.Add Two Numbers (0) | 2020.12.28 |
[LeetCode] 1.TwoSum (0) | 2020.12.28 |