![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
NIKson |
![]()
Сообщение
#1
|
Гость ![]() |
Люди, помогите составить программу нахождения в произвольно заданом тексте максимальную по длине последовательность цифр (если можно с вводом исходных данных из текстового файла, и выводом туда результата работы программы)....
|
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Во первых поищи по форуму и загляни в наш FAQ найдешь все что нужно
Вот тебе алгоритм : перед началом максимальная последовательность max := ''; // пустая строка Читаешь строку из файла, проходишь по строке, пока не наткнешься на цифру, идешь дальше пока не наткнешься на НЕ цифру , выделяешь кусок с цифрами, и сравниваешь его длинну с длинной max, если больше то записываешь в max. примерно так :
max := '';
...
i:=1;
while(i<=length(s)) do begin
while (not(s[i] in ['0'..'9']))and(i<=length(s)) do
inc(i);
if i<=length(s) then begin
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;
Сообщение отредактировано: klem4 - 11.10.2005 18:51 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
NIKson, смотри здесь:
FAQ: Как найти в массиве максимальную последовательность одинаковых символов? меняешь две (!!!) строки и получаешь то, что тебе нужно... klem4: Цитата выделяешь кусок с цифрами, и сравниваешь его длинну с длинной max, если больше то записываешь в max. Неоптимально. Лучше хранить 2 переменных: индекс начала и длину последовательности (максимум 2 integer-а), чем всю строку символов (она может быть гораздо длинней) ;) |
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Volvo, в приведенном примере я так и сделал, это я для лучьшего понимания так сказатьнаписал
![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
max := '';
Ты кому-нибудь будешь рассказывать сказки, мне не надо ![]() |
klem4 |
![]()
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
аа ты про это
![]() Сообщение отредактировано: klem4 - 11.10.2005 19:04 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 10:47 |