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

Задача

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

Решение

Описание переменных: 

  • w - длина очередного слова
  • min - длина самого короткого слова

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

  1. Если очередной символ строки является буквой, то увеличить значение переменной w.
  2. Иначе
    1. проверить не меньше ли значение w (при этом значение w не должно быть равно 0) чем min; если это так, то перезаписать значение min;
    2. обнулить значение w.

Программа на языке Паскаль:

var
    s: string;
    i, w, min: byte;
 
begin
    readln(s);
    min := 255;
 
    w := 0; // длина очередного слова
    for i:=1 to length(s) do 
        if (s[i] >= 'a') and (s[i] <= 'z') then 
            w := w + 1
        else begin
            if (w < min) and (w <> 0) then 
                min := w;
            w := 0  
        end;
 
    // проверка последнего слова
    if (w < min) and (w <> 0) then
        min := w;
 
    writeln('The shortest length of word: ', min);
end.

Пример выполнения программы:

blue, color red!
The shortest length of word: 3