• СРОЧНО ПЖЖЖЖЖ!!КОД НА ПИТОНЕ!!!ПЖЖЖ! Текст параграфа представляет собой набор слов (последовательности символов с кодами от 33 до 127), разделенных ровно одним пробелом (символом с кодом 32). Ширина параграфа должна составлять не более M символов. Требуется получить разбиение этого текста на строки длиной не более чем M символов. Cлово переносится на следующую строку, только если в текущей строке его разместить уже невозможно. Новая строка не должна начинаться с пробела. Никакая строка не должна заканчиваться пробелом. Последняя строка должна заканчиваться переводом строки (он автоматически образуется при выполнении вызова print в Python без изменения параметра end, а также при выводе endl в поток вывода cout в С++). Формат входных данных На вход программе сначала подается число 0 . В следующей строке находится исходный текст. Длина слов в нем не превышает M, слова разделены ровно одним пробелом. В начале и в конце строки пробелы отсутствуют. Текст содержит как минимум один непробельный символ. Длина текста не превосходит 100000 символов. Формат выходных данных Выведите искомое разбиение текста на строки длиной не более M . Ввод Вывод 7 One, two and three. One, two and three.

Ответы 1

  • M = int(input()) # Ширина параграфа

    text = input().strip() # Входной текст без пробелов в начале и конце

    n = len(text) # Длина текста

    i = 0 # Индекс начала текущей строки

    while i < n:

       j = min(i + M, n) # Индекс конца текущей строки

       if j == n: # Если это последняя строка

           print(text[i:j]) # Выводим все до конца

       else:

           # Ищем последний пробел перед концом текущей строки

           while j > i and text[j] != ' ':

               j -= 1

           if j == i: # Если в текущей строке только одно слово

               j = min(i + M, n) # Не переносим, а выводим все до конца

               print(text[i:j])

           else: # Если есть слова для переноса на следующую строку

               print(text[i:j])

               i = j + 1 # Начинаем следующую строку сразу после пробела

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years