как найти в массиве слова содержащие более 5 букв (делфи) подскажите алгоритм нахождения таких слов (делфи)
5 различных букв
5 различных букв
{$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.
ЗЫ:
Слова в изначальной строке должны быть разделены пробелом.
создаешь второй массив и циклом проверяешь в первом массиве каждый следующий символ со счетом интераций.
если символ не является пробелом, то i++, а если пробел - обнуляешь счетчик интераций.
затем условие проверки счетчика. если i=>5, то начиная от n-4 символа до следующего пробела переносить в новый массив.