Люди, помогите составить программу нахождения в произвольно заданом тексте максимальную по длине последовательность цифр (если можно с вводом исходных данных из текстового файла, и выводом туда результата работы программы)....
klem4
11.10.2005 22:50
Во первых поищи по форуму и загляни в наш FAQ найдешь все что нужно Вот тебе алгоритм :
перед началом максимальная последовательность max := ''; // пустая строка Читаешь строку из файла, проходишь по строке, пока не наткнешься на цифру, идешь дальше пока не наткнешься на НЕ цифру , выделяешь кусок с цифрами, и сравниваешь его длинну с длинной max, если больше то записываешь в max.
примерно так :
max := '';
...
i:=1;
while(i<=length(s)) dobeginwhile (not(s[i] in ['0'..'9']))and(i<=length(s)) do
inc(i);
if i<=length(s) thenbegin
start := i;
while(s[i] in ['0'..'9']) do
inc(i);
if i-start>length(max) then
max := copy(s, start, i-start);
end;
end;
выделяешь кусок с цифрами, и сравниваешь его длинну с длинной max, если больше то записываешь в max.
Неоптимально. Лучше хранить 2 переменных: индекс начала и длину последовательности (максимум 2 integer-а), чем всю строку символов (она может быть гораздо длинней) ;)
klem4
11.10.2005 23:00
Volvo, в приведенном примере я так и сделал, это я для лучьшего понимания так сказатьнаписал :yes:
volvo
11.10.2005 23:01
max := '';
Ты кому-нибудь будешь рассказывать сказки, мне не надо
klem4
11.10.2005 23:03
аа ты про это Да тут можно обойтись и без строки дополнительной. Не понял сначала о чем ты :smilie:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.