aboutsummaryrefslogtreecommitdiff
path: root/challenge-084/lubos-kolouch/python/ch-1.py
blob: ceada24ddc7a48d21cda53fd81e454ca48bab47a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/bin/env python
"""
#===============================================================================
#
#         FILE: ch-1.py
#
#        USAGE: ./ch-1.py
#
#  DESCRIPTION: Perl Weekly Challenge #84
#               https://perlweeklychallenge.org/blog/perl-weekly-challenge-084/
#               Task 1 - Reverse Integer
#
#       AUTHOR: Lubos Kolouch
#      CREATED: 10/28/2020 08:48:14 PM
#===============================================================================
"""


def get_reverse_int(what: int):
    """ Reverse the int """

    # sanitize the input to int
    what = int(what)

    sign = '-' if what < 0 else ''

    rever = str(abs(what))[::-1]

    # 33 because it starts with 0b
    if len(bin(int(rever))) > 33:
        return 0

    return int(sign+rever)


assert get_reverse_int(1234) == 4321
assert get_reverse_int(-1234) == -4321
assert get_reverse_int(1_231_230_512) == 0
assert get_reverse_int(1.000) == 1
assert get_reverse_int(1e+3) == 1
assert get_reverse_int(7_463_847_412) == 2_147_483_647
assert get_reverse_int(2_147_483_648) == 0