Строки · 40 из 40
Стенгазета по ширине
Соседка с пятого этажа выпускает к праздникам стенгазету дома и печатает её на старой машинке узкими колонками. Неровный правый край её раздражает: в настоящей газете колонка — ровный прямоугольник, и слова в строке раздвигаются так, чтобы последнее упиралось в край. Пробелы она расставляет на бумажке вручную и каждый раз путается, куда класть лишний.
Что сделать
Разложите текст на строки заданной ширины и раздвиньте слова так, чтобы каждая строка, кроме последней, упиралась в оба края.
Что приходит
tekst— текст заметки; слова разделены пробелами, бывает и по несколькуshirina— сколько знаков в строке колонки
Что вернуть
Список строк ровно по shirina знаков; слово длиннее строки — ValueError, пустой текст — [].
Допишите функцию po_shirine в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
«Свет в подвале чинят вход только с фонариком» шириной 16: в первую строку входят «Свет в подвале». Букв в ней двенадцать, до ширины не хватает четырёх пробелов — по два на каждый из двух промежутков: "Свет в подвале". Последняя строка — «фонариком» и семь пробелов до ширины.
po_shirine("Свет в подвале чинят вход только с фонариком", 16)
['Свет в подвале', 'чинят вход', 'только с', 'фонариком ']
Слова берутся по порядку и кладутся в строку, пока помещаются с одним пробелом между ними (длина такой строки не больше shirina). Не поместилось — слово начинает следующую строку.
Каждая строка, кроме последней, растягивается ровно до shirina: пробелы делятся между промежутками поровну, а если поровну не делятся, лишние получают левые промежутки — по одному. Строка из одного слова — слово и пробелы после него до ширины.
Последняя строка не растягивается: слова через один пробел и пробелы в конце до ширины.
Каждая строка ответа — ровно shirina знаков. Слово длиннее shirina — ValueError. Пустой текст или одни пробелы — [].
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.