1+ # Learn Python together
2+ """Given a signed 32-bit integer x, return x with its digits reversed.
3+ If reversing x causes the value to go outside the signed 32-bit integer
4+ range [-231, 231 - 1], then return 0."""
5+
6+ # Solution 1 for 32-bit integers
7+ def reverse_number (x ):
8+ pos = 1
9+ if x < 0 :
10+ # negating the input number if its negative and store in pos
11+ pos = - 1
12+ x = - x
13+ # converting number to str and reverse it
14+ reverse = int (str (x )[::- 1 ])
15+ # return reverse if its 32 bit integer
16+ return pos * reverse if reverse <= 2 ** 31 - 1 else 0
17+
18+ # check
19+ print (reverse_number (321 )) # -> 123
20+ print (reverse_number (- 567 )) # -> -765
21+ print (reverse_number (2585645646453 )) # -> 0
22+ print (reverse_number (- 2585645646453 )) # -> 0
23+
24+ # Solution 2 for 64-bit integers
25+ def reverse_number2 (x ):
26+ # for negative inputs
27+ pos = 1
28+ if x < 0 :
29+ # negating the input number if its negative and store in pos
30+ pos = - 1
31+ x = - x
32+ reverse = 0
33+ # use a while loop for interation
34+ while x > 0 :
35+ # getting last digit of x
36+ pop = x % 10
37+ # use floor division for droping last digit
38+ x //= 10
39+ # multipe the previous reversed digits by 10 and add th current digit
40+ reverse = reverse * 10 + pop
41+ # return multiplied reversed num by pos
42+ return reverse * pos
43+ # check
44+ print (reverse_number2 (321 )) # -> 123
45+ print (reverse_number2 (- 567 )) # -> -765
46+ print (reverse_number2 (2585645646453 )) # -> 3546465465852
47+ print (reverse_number2 (- 2585645646453 )) # -> -3546465465852
48+
49+
50+
51+
52+
53+
0 commit comments