Next Greater Element III LeetCode solution in Python
1class Solution:2def nextGreaterElement(self, n):3digits = list(str(n))4i = len(digits) - 15while i - 1 >= 0 and digits[i] <= digits[i - 1]:6i -= 178if i == 0:9return -11011j = i12while j + 1 < len(digits) and digits[j + 1] > digits[i - 1]:13j += 11415digits[i - 1], digits[j] = digits[j], digits[i - 1]16digits[i:] = digits[i:][::-1]17ret = int("".join(digits))1819return ret if ret < 1 << 31 else -1