- 문제 링크: https://leetcode.com/problems/reverse-integer/
Easy 난이도 문제인데요, 오버플로우도 신경써줘야 하는 좀 귀찮은 문제입니다.
주어진 정수를 뒤집어야 하는데, 음수인 경우 하이픈은 빼고 뒤집습니다. 뒤집었을 때 Int 범위 [-2^31, 2^31-1]를 초과하면 0을 반환합니다.
파이썬은 강력한 형변환과 문자열 슬라이싱이 있으니 적당히 사용해서 풀면 됩니다
class Solution(object):
def reverse(self, x):
def in_range(num):
return -2**31 <= num <= 2**31-1
if x > 0:
num = int(str(x)[::-1])
if in_range(num):
return str(num)
elif x < 0:
num = int(str(x)[1:][::-1])
if in_range(num):
return '-' + str(num)
return '0'
이건 제 코드인데 좀 잘 짠건 아닌 듯 하네요.... 파이썬 뉴비가 짠 코드니 이해부탁드립니다
어쨌거나 이런 느낌으로 푸시면 되겠습니다
반응형
'Online Judge > LeetCode' 카테고리의 다른 글
[LeetCode][Python] 111. Minimum Depth of Binary Tree (0) | 2020.11.11 |
---|---|
[LeetCode][Python] 700. Search in a Binary Search Tree (0) | 2020.10.31 |
[LeetCode][Python] 3. Longest Substring Without Repeating Characters (0) | 2020.10.31 |
[LeetCode][Python] 2. Add Two Numbers (0) | 2020.10.31 |
[LeetCode][C++] 1512. Number of Good Pairs (0) | 2020.10.11 |