Перебор всех чисел

Существует некое число(n) из него нужно удалить k элементов и найти наименьшее возможное число, после удаления, не меняя расположение элементов Пример:


1124000056 - число
4 - кол-во удаляемых цифр
56 - результат, т.к. при выводе целого числа будет выводится без нулей

____
1234 
2
12
____
100
1
0
____
10200
1
200

Ответы (2 шт):

Автор решения: handowl
from itertools import combinations

tests = [('1124000056', 4),
        ('1234', 2),
        ('100', 1),
        ('10200', 1)        
        ]
        
for n, k in tests:
    print(min([int(''.join(i)) for i in combinations(n, len(n)-k)]))
→ Ссылка
Автор решения: Danis
def f(n, k):
    for _ in range(k):
        x = [n[:i] + n[i+1:] for i in range(len(n))]
        n = min(x, key=int)
    return int(n)

tests = [
    ('1124000056', 4),
    ('1234', 2),
    ('100', 1),
    ('10200', 1)
]

for n, k in tests:
    print(f(n, k))
→ Ссылка