Количество слов
Вы решили задачу. Теперь можно сравнить подходы.
При одиночных пробелах слов на одно больше, чем разделителей.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Подсчёт пробелов
Это решение следует требованию использовать 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).
На что обратить внимание
- Краткая формула требует отсутствия повторных и крайних пробелов. Метод count с границами не создаёт срез строки.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.