Advertisement
Guest User

Untitled

a guest
Dec 14th, 2015
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.74 KB | None | 0 0
  1. def next_bigger(n):
  2.     n = [int(x) for x in str(n)]
  3.     key = []
  4.     if len(n) <= 1:
  5.         return -1
  6.     for i in range(len(n) - 1, 0, -1):
  7.         if n[i] > n[i - 1]:
  8.             cor = [n[x] for x in range(i - 1, len(n))]
  9.             for num in cor:
  10.                 if num > cor[0]:
  11.                     key.append(num)
  12.                     key = sorted(key)
  13.                     z = cor.index(key[0])
  14.             cor[0], cor[z] = cor[z], cor[0]
  15.             cor = str(cor[0]) + ''.join(sorted([str(cor[x]) for x in range(1, len(cor))]))
  16.             m = 0
  17.             for j in range(i - 1, len(n)):
  18.                 n[j] = int(cor[m])
  19.                 m += 1
  20.             return int(''.join([str(n[x]) for x in range(len(n))]))
  21.     return -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement