Почему моя программа завершается аварийно вместо того чтобы выводить только те буквы, которые есть во всех словах?

Как можно оптимальнее улучшить программу, которая считывает строку из ввода, сохраняет буквы из этой строки в список, а затем отбирает только те буквы, которые содержатся в последующих считываемых строках, пока строка не окажется пустой, после чего выводит список оставшихся букв?
  • 10 июля 2024 г. 18:12
Ответы на вопрос 2
Вероятно, ваша программа завершается аварийно из-за ошибки в логике или обработке данных. Чтобы улучшить программу, можно использовать следующий подход:

1. Использовать множества для хранения уникальных букв в каждой строке.
2. Начать считывать первую строку, добавить все буквы в множество.
3. Затем, при считывании каждой следующей строки, добавлять буквы во второе множество.
4. После этого, использовать операцию пересечения множеств для того, чтобы найти общие буквы из всех строк.
5. Наконец, вывести полученное множество букв.

Пример программы на Python:

```python
common_letters = set(input().strip())
while True:
    line = input().strip()
    if not line:
        break
    common_letters &= set(line)
print(sorted(common_letters))
```

Этот код позволит вам получить список только тех букв, которые встречаются в каждой строке. Пожалуйста, убедитесь, что ваши входные данные корректны, чтобы избежать возможных ошибок.
У вас в цикле по iter фигня какая-то происходит. Вы там iter не меняете вообще. А надо или сдвигать на следующий элемент, или, если вы удаляете элемент, переходить к значению, которое вернуло erase - оно как раз возвращает следующий за удаленным элемент.
Похожие вопросы