Определить длину самого короткого слова в строке

В заданной строке найти самое короткое слово. Слова могут быть разделены пробелами, несколькими пробелами, знаками препинания.

Алгоритм решения задачи:

  1. Длина очередного слова будет храниться в переменной w. Вначале присвоим этой переменно 0, т. к. в строке слов может вообще не быть.
  2. Длина самого короткого слова будет записана в переменной min_w. Вначале этой переменной присваивается максимально возможная длина слова. Самое длинное слово может быть, если вся строка состоит только из одного слова. Поэтому сначала min_w равна длине строки.
  3. Перебираем строку посимвольно в цикле for.
  4. Если очередной символ является буквой, то увеличиваем значение w.
  5. Иначе проверяем не меньше ли длина только что "измеренного" слова, чем значение min_w. Если это так, то меняем значение min_w на значение w.
  6. Также в ветке else (иначе) обнуляем w, т.к. очередное слово закончилось и необходимо будет "измерять" новое.
s = input()
w = 0
min_w = len(s)
for i in s:
	if 'a'<=i<='z' or 'A'<=i<='Z' \
	or 'а'<=i<='я' or 'А'<=i<='Я':
		w += 1
	else:
		if w < min_w and w != 0:
			min_w = w
		w = 0
 
print(min_w)

Пример работы программы:

Кто сказал мяу?            
3
1   what 
4

Создано