Advertisement
Guest User

cau4

a guest
Oct 23rd, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.91 KB | None | 0 0
  1. def unname(first,afterx):
  2.     # '78' vs '7889':
  3.     # => first = '7', afterx = '89'
  4.     first = int(first)
  5.     for y in afterx:
  6.         if int(y) > first:
  7.             return True
  8.         if int(y) < first:
  9.             return False
  10.     return False
  11.  
  12. def compare(a,b):
  13.     if a == b:
  14.         return False
  15.     a = str(a)
  16.     b = str(b)
  17.     _lena = len(a)
  18.     _lenb = len(b)
  19.     x = min(_lena, _lenb)
  20.     if int(a[:x]) > int(b[:x]):
  21.         return True
  22.     if int(a[:x]) < int(b[:x]):
  23.         return False
  24.    
  25.     if _lena > _lenb:
  26.         return not unname(a[0],a[x:])
  27.     return not unname(b[0],b[x:])
  28.  
  29. def custom_sort(arr):
  30.     for i in range(len(arr) -1):
  31.         for j in range(i, len(arr)):
  32.             if not compare(arr[i],arr[j]):
  33.                 a = arr[i]
  34.                 arr[i] = arr[j]
  35.                 arr[j] = a
  36.     return ''.join(str(e) for e in arr)
  37.  
  38. custom_sort([40, 1, 99, 12])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement