В строке заменить пробельные символы знаком звездочки ("*"). Если встречается
подряд несколько пробелов, то их следует заменить одним знаком "*", пробелы в
начале и конце строки удалить.
**Алгоритм решения задачи:**
1. Посимвольно просмотреть строку с ее начала. Запомнить номер первого непробельного символа. Взять срез из строки от первого непробельного символа до ее конца.
2. Просмотреть строку с конца. Запомнить номер первого непробельного символа с конца. Взять срез из строки от ее начала до первого непробельного символа с конца.
3. Присвоить новой строке первый символ старой (он в любом случае не пробел).
4. Посимвольно просматривать старую строку. Если очередной символ не является пробелом, то формировать новую строку добавлением к ней этого символа. В ветку `elif` попадают символы пробела, но здесь проверяется не был ли равен предыдущий символ пробелу. И если это не так (не был равен), то только тогда к новой строке добавляется "*". Лишние пробелы будут просто пропущены и не добавлены к новой строке.
s = input() i = 0 while s[i] == ' ': i+=1 s = s[i:] i = len(s) while s[i-1] == ' ': i-=1 s = s[:i] s1 = s[0] i = 1 while i < len(s): if s[i] != ' ': s1 += s[i] elif s[i-1] != ' ': s1 += '*' i += 1 print(s1+'!')Пример выполнения скрипта:
one two three four f*ve six seven one*two*three*four*f*ve*six*seven!Однако в языке программирования Python данную задачу проще решить,
преобразовав строку в список или возможно через регулярные выражения.
С помощью метода split() строка разделяется на слова по пробелам. При этом
неважно сколько их. Далее остается только снова собрать слова в строку через
"*":
s = input() l = s.split() s1 = '' for i in l: s1 += i + '*' s1 = s1[:-1] # удаляем последнюю "*" print(s1)