문제
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 [-2^31, 2^31 - 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:
- -2^31 <= x <= 2^31 - 1
코드1 - TryParse
public class Solution {
public int Reverse(int x) {
char[] reverse = x.ToString().ToCharArray().Reverse().ToArray();
string answerStr = new string(reverse);
if(x<0) {
answerStr = '-'+answerStr.Remove(answerStr.Length-1);
}
int answer;
if (Int32.TryParse(answerStr, out answer))
return answer;
else
return 0;
}
}
코드2 - Convert.ToInt
public class Solution {
public int Reverse(int x) {
char[] reverse = x.ToString().ToCharArray().Reverse().ToArray();
string answer = new string(reverse);
if(x<0) {
answer = '-'+answer.Remove(answer.Length-1);
}
try{
return Convert.ToInt32(answer);
}
catch{
return 0;
}
}
}
설명:
코드1과 코드2는 전반적으로 같지만, int로 형변환을 TryParse로 했는지 Convert.ToInt로 했는지의 차이다.
그리고 문제에서 뒤집은 숫자가 32-bit integers 범위를 벗어나면 0을 반환하라는 조건이 주어졌기 때문에
TryParse를 사용한 코드1에선 if-else문으로, Convert.ToInt를 사용한 코드2에선 try-catch문으로 숫자가 범위를 벗어난 경우에 0를 반환했다.
'Coding > LeetCode' 카테고리의 다른 글
[LeetCode/JavaScript] 3. Longest Substring Without Repeating Characters (medium) (0) | 2021.09.21 |
---|---|
[LeetCode/JavaScript] 876. Middle of the Linked List (easy) (0) | 2021.09.21 |
[LeetCode/C#] 1. Two Sum (easy) (0) | 2021.09.20 |
[LeetCode/JavaScript] 557. Reverse Words in a String III (easy) (0) | 2021.09.17 |
[LeetCode/JavaScript] 344. Reverse String (easy) (0) | 2021.09.17 |