Другие языки программирования и технологии

как найти в массиве слова содержащие более 5 букв (делфи) подскажите алгоритм нахождения таких слов (делфи)

ВY
Вовчик Yan
148
{$apptype console}

uses
    classes;

var
    s: string;
    sl: tstringlist;
    c, k, n: integer;
    na: array [#0..#255] of boolean;

begin
    write('string? ');
    readln(s);
    sl := tstringlist.create;
    sl.duplicates := dupignore;
    sl.sorted := true;
    sl.delimiter := ' ';
    sl.delimitedText := s;
    for c := 0 to sl.Count - 1 do begin
        fillchar(n, 256 * sizeof(boolean), #0);
        n := 0;
        for k := 1 to length(sl[c]) do
            if not na[sl[c][k]] then begin
                na[sl[c][k]] := true;
                inc(n);
            end;
        if n >= 5 then writeln(sl[c]);
    end;
    readln;
end.

ЗЫ:
Слова в изначальной строке должны быть разделены пробелом.
Дамир Казбеков
Дамир Казбеков
67 633
Лучший ответ
создаешь второй массив и циклом проверяешь в первом массиве каждый следующий символ со счетом интераций.
если символ не является пробелом, то i++, а если пробел - обнуляешь счетчик интераций.
затем условие проверки счетчика. если i=>5, то начиная от n-4 символа до следующего пробела переносить в новый массив.

Похожие вопросы