Мини-урок · перед практикой

Количество слов

При одиночных пробелах слов на одно больше, чем разделителей.

Как к ней подойти

Потренируйтесь находить нужные символы и фрагменты строки, не теряя границы срезов.

Коротко о теме

У строки есть индексы, срезы и методы поиска. Индексация начинается с нуля, правая граница среза не включается. Перед сборкой ответа проверьте, что произойдёт, если искомый фрагмент отсутствует.

Ключевая идея · Подсчёт пробелов

Это решение следует требованию использовать count и предполагает формат задачи: непустые слова через один пробел.

Проверьте перед запуском

  • Краткая формула требует отсутствия повторных и крайних пробелов. Метод count с границами не создаёт срез строки.

Сравните свой подход

Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.

Ваше принятое решение

Рекомендуемое решение: Подсчёт пробелов

Это решение следует требованию использовать count и предполагает формат задачи: непустые слова через один пробел.

s = input()
print(s.count(" ") + 1)

Время: O(L). Память: O(L).

Другой способ: Подсчёт начал слов

Вместо общего числа разделителей считаем переходы от пробела к непробельному символу. count проверяет односимвольный диапазон; подход также допускает повторные и крайние пробелы.

s = input()
words = 0
for i in range(len(s)):
    if s.count(" ", i, i + 1) == 0 and (i == 0 or s[i - 1] == " "):
        words += 1
print(words)

Время: O(L). Память: O(L).