![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| annairam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 27.3.2011 Репутация: нет Всего: нет |
Добрый вечер!Не могли бы вы помочь с написанием скрипта?
Сжатие строки Один из простых способов сжатия информации заключается в поиске одинаковых частей, идущих подряд. Вместо нескольких повторений можно записать их количество и всего одну часть. Задача. По заданной строке выдать её максимальное сжатие. Длинна получившейся строки считается вместе с числом. Длина числа - количество цифр в десятичной записи. Техническое требования Задана строка не содержащая цифр. Длина входной строки не более 100 символов. Если вариантов сжатия несколько, то выдать любой. ПРИМЕР Строка: ababababABabAbbccccccccccc Сжатие: 4ab1ABabAbb11c |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 2 Всего: 39 |
||||
|
||||
| annairam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 27.3.2011 Репутация: нет Всего: нет |
Надо что-то делать с этим?
" use Compress::LZW; my $compressed = compress($fatdata); my $fatdata = decompress($compressed); my $smallcompressed = compress($thindata, 12); my $thindata = decompress($smallcompressed, 12);" один раз только скрипты писали( |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 2 Всего: 14 |
Вот такой вариант, может поможет:
Результат: 4abABabA2b11c, так думаю правильнее Это сообщение отредактировал(а) alezzz - 28.3.2011, 10:27 |
|||
|
||||
| alezzz |
|
|||
![]() сплю... ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 17.8.2009 Репутация: 2 Всего: 14 |
Не учел случай когда нужна 1 перед неповторяющейся последовательностью, вот исправленый вариант:
|
|||
|
||||
| annairam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 27.3.2011 Репутация: нет Всего: нет |
спасибо огромное!вроде все работает)))
|
|||
|
||||
| annairam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 27.3.2011 Репутация: нет Всего: нет |
Что то не работает сам cgi((((
Вот в html пишу <h2> Второе задание по CGI. </h2> <form action="cgi-bin/pyp2.cgi" method=GET> <input type="button" value="Справка" onClick='alert("Даннй скрипт по заданной строке выдает ее максимальное сжатие.");'><br> <h4>Введите слово</h4> <input type="text" name="qwe"> <input type=submit value="Проверить"> <input type=reset value="Сброс"> </form></div> сам cgi написала так #!/usr/bin/perl $string = $ENV{'QUERY_STRING'}; @p = split (/&/, $string); foreach $i (@p) { ($name,$value)= split (/=/,$i); }; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack ("C", hex ($1))/eg; if ($name eq "qwe"){ $str=$value;} print "Content-type: text/html; charset=KOI8-r \n\n"; while($str =~ /(\w*?)(\w+?)\2+/g){ $res .= "1".$1 if $1; $res .= (length($&) - length($1)) / length ($2) . $2; } print $res; и в итоге никакого результата не выдается(по идее надо чтоб после того как пользователь ввел слово в эту форму он это слово сжимал.в самом perl Ваш код работает когда слово задается сразу,а вот тут уже нет. может я что-то неправильно пишу? |
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |