Untitled

 avatar
unknown
python
2 years ago
1.8 kB
15
Indexable

# Число для удаления из которого будем удалять
n = list(map(int,list('102087607280291102')))
k = int(11) # Количество цифр которые нужно удалить
lenght = len(n) - k # Длина списка после удаления
n2 = [] # Список для новых чисел


# function to find the second max number in the list
def second_max(n):
    max1 = max(n)
    max2 = -1
    for i in n:
        if i != max1:
            if max2 == -1:
                max2 = i
            elif i > max2:
                max2 = i
    return max2

for i in range(len(n)):
    try: # Проверяем есть ли в списке еще цифры
        if len(n2) != lenght and n.index(max(n)) <= lenght: # Длина списка после удаления всех чисел до максимального числа должна быть больше или равна длине списка после удаления
            n2.append(max(n)) # Добавляем максимальное число в список
            n = n[n.index(max(n))+1:] # Удаляем все числа до максимального числа в списке максимальное число тоже удаляем
        elif len(n2) != lenght and n.index(max(n)) >= lenght: # Если первое условие не сработало значит нужно найти второй самый большой элемент списка
            n2.append(second_max(n))
            n = n[n.index(second_max(n))+1:]
    except: 
        break


# Где то в коде ошибка которая удаляет нужные цифры и в итоге длина списка получается не та

#

print(n2)
Editor is loading...