Next Greater Element III LeetCode solution in Python

1
class Solution:
2
def nextGreaterElement(self, n):
3
digits = list(str(n))
4
i = len(digits) - 1
5
while i - 1 >= 0 and digits[i] <= digits[i - 1]:
6
i -= 1
7

8
if i == 0:
9
return -1
10

11
j = i
12
while j + 1 < len(digits) and digits[j + 1] > digits[i - 1]:
13
j += 1
14

15
digits[i - 1], digits[j] = digits[j], digits[i - 1]
16
digits[i:] = digits[i:][::-1]
17
ret = int("".join(digits))
18

19
return ret if ret < 1 << 31 else -1

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0