Вопрос задан 21.06.2026 в 06:54. Предмет Информатика. Спрашивает Хоцанян Давид.

С клавиатуры вводится строка, состоящая из слов, разделенных пробелами. Составьте программу, удаляющую лишние пробелы. Пробел считается лишним, если он стоит в начале или в конце строки, следует за пробелом, стоит перед знаком препинания.

Перейти к ответам

Ответы на вопрос

Отвечает Мальцев Арсений.

Можно пройти по строке посимвольно и строить новую строку, добавляя пробел только тогда, когда он действительно нужен.

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

Python
s = input()

punctuation = ".,;:!?"

result = []

for ch in s:
if ch == " ":
# Пробел добавляем только если:
# 1) результат не пустой
# 2) предыдущий символ не пробел
if result and result[-1] != " ":
result.append(ch)
else:
# Если текущий символ — знак препинания,
# а перед ним уже стоит пробел, удаляем этот пробел
if ch in punctuation and result and result[-1] == " ":
result.pop()

result.append(ch)

# Если в конце строки остался пробел, удаляем его
if result and result[-1] == " ":
result.pop()

print("".join(result))

Например, если ввести:

   Привет  ,   как   дела  ?  

программа выведет:

Привет, как дела?

Что делает программа:

  1. Пробелы в начале строки не добавляются, потому что список result ещё пустой.

  2. Несколько пробелов подряд заменяются одним пробелом.

  3. Если перед знаком препинания оказался пробел, он удаляется.

  4. Пробел в конце строки удаляется после обработки всей строки.

Знаки препинания заданы в строке:

Python
punctuation = ".,;:!?"

При необходимости туда можно добавить другие символы, например кавычки, скобки или многоточие.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Информатика 14.03.2025 07:08 157 Дегтяренко Диана

Последние заданные вопросы в категории Информатика

Информатика 21.06.2026 07:02 16 Пермяков Николай
Задать вопрос