Sichanov

largest

Sep 22nd, 2021
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.62 KB | None | 0 0
  1. import sys
  2.  
  3. number = input()
  4. initial_number = number
  5. result = ''
  6. new_number = ''
  7. max_number = -sys.maxsize
  8.  
  9. докато дължината на стринг result е различна от дължината на първоначалния стринг (число)
  10. while len(result) != len(initial_number):
  11.     # намираме най-голямата цифра от стринга number, намираме индекс ѝ,
  12.     for i in range(len(number)):
  13.         if int(number[i]) > max_number:
  14.             max_number = int(number[i])
  15.             index = i
  16.     # добавяме най-голямата цифра в стринг result
  17.     result += str(max_number)
  18.  
  19.     # с тези 2 цикъла ще направим ново число, което ще обхождаме като премахнем най-голямата вече намерена цифра.
  20.     # правим го с помощта на индекса, който намерихме и
  21.     # първия цикъл създава лявата част, а втория дясната
  22.     for left in range(0, index):
  23.         new_number += number[left]
  24.     for right in range(index + 1, len(number)):
  25.         new_number += number[right]
  26.     # number го превръщаме в новосъздаденото число
  27.     number = new_number
  28.     # връщаме стойността на max_number
  29.     max_number = -sys.maxsize
  30.     # нулираме new_number за следващият път когато ще създаваме ново число с помощта на left/right циклите
  31.     new_number = ''
  32. print(result)
Advertisement
Add Comment
Please, Sign In to add comment