Вопрос задан 01.09.2026 в 15:56. Предмет Информатика. Спрашивает Муркин Ваня.

Python. Распределите пробелы. Дана строка, содержащая по крайней мере один не ведущий пробел, за которым следует отличный от пробела символ. За счёт изменения групп пробелов внутри строк (количества пробелов между словами) добиться того, чтобы в начале и в конце каждой из строк пробелы отсутствовали. Количество пробелов в разных группах внутри одной строки должно различаться не более чем на единицу. Количество символов в строке должно остаться неизменным.

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

На вход программе подаётся строка, состоящая не более чем из 255 символов.

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

Выведите преобразованную строку. Если количество пробелов между словами отличается, то сначала должны идти группы пробелов минимального размера, а затем — на единицу большего размера.
Ввод:
ABCD XYZ QWE
Вывод:
ABCD XYZ QWE

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

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

Отвечает Кособуцький Микола.

Нужно сохранить порядок слов и общее число символов. Все пробелы, включая начальные и конечные, считаем общим запасом, а потом распределяем их только между словами.

Решение на Python:

s = input()
words = s.split()

spaces = len(s) - sum(len(w) for w in words)
gaps = len(words) - 1

base = spaces // gaps
extra = spaces % gaps

ans = words[0]
for i in range(gaps):
    cnt = base + (1 if i >= gaps - extra else 0)
    ans += ' ' * cnt + words[i + 1]

print(ans)

Сначала идут группы пробелов размера base, а последние extra групп получают на один пробел больше.

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

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

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

Задать вопрос