Блок задач

4. Структуры данных

Темы
Сложность 5

Задача «Слова из слова»

Написать программу, формирующую все слова, которые можно составить из букв введенного пользователем слова

Входные данные

1) Текстовый файл-словарь (в каждой строчке - существующее слово). Пример:

god
dog
watch
node
cat

Файл может содержать пустые строки. Их необходимо игнорировать.

2) Слово, считанное с клавиатуры (в начале исполнения пользователю предлагается ввести слово). Пример:

goodness

Постановка задачи

Написать программу, формирующую все слова, которые можно составить из букв введенного пользователем слова. Каждую букву в заданном слове можно использовать один раз. Решение не должно основываться на полном переборе всего словаря.

Выходные данные

Вывод в текстовый файл:

god
dog
node

Тестирование

Для всех разработанных модулей должны быть созданы наборы unit тестов. Функций ввода/вывода нужно тестировать с помощью std::stringstream.