Задача к ЕГЭ по информатике на тему «прочие прототипы» №3

Дана строка ′ABC  ′ .

Рассматриваются всевозможные непустые уникальные подмножества, состоящие из букв строки. Необходимо распечатать всевозможные множества, состоящие из букв ′ABC  ′ в порядке возрастания (т.е. в порядке возрастания букв во множестве; подмножества одинаковой длины сортировать по алфавиту).

Уникальным множеством считается то, что встречается один раз (то есть перестановки элементов внутри множества не делают его уникальным).

В качестве ответа укажите всевозможные множества в одной строке через пробел.

Решение 1

n = 3
s = ’ABC’
ans = []

for i in range(2**n):
    t = i
    mn = ’’
    for j in range(n):
        if t % 2 == 1:
            mn += s[j]
        t //= 2

    if len(mn) > 0:
        ans.append(mn)

print(*sorted(ans, key = lambda  x: len(x)))

Решение 2

from itertools import combinations

n = 3
s = ’ABC’
ans = []

for j in range(1, 4):
    for i in combinations(s, j):
        ans.append(’’.join(i))

print(*ans)

Ответ: A B C AB AC BC ABC
Оцените статью
Я решу все!