IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> сокращение строки, помогите решить задачку...
Bard
сообщение 8.05.2007 21:40
Сообщение #1


Учиться, учиться еще раз учиться
***

Группа: Пользователи
Сообщений: 158
Пол: Мужской
Реальное имя: Яшар

Репутация: -  3  +


вчера нам учитель задал такую вот задачку: smile.gif

вводиться строка из латинских букв требуеться ее сжать...

Цитата

например:
если AABCCCCC то надо ее сжать таким образом 2AB5C
или
AAAAAAAAAABABABCCD то 10A2(BA)B2CD
Например, последовательность "ABABCABABC" можно записать как 2(2(AB)C)


помогите с алгоритмом... blum.gif

Добавлено через 5 мин.
а вот и оригинал задачи:
Цитата
Сжатие

Рассмотрим последовательность строк, состоящую только из больших латинских букв. Например, последовательность "AAAABBBAAAABBBC" - одна из таких последовательностей. Ее длина 15 символов. Поскольку в последовательности могут быть только буквы, можно заменить несколько подряд идущих одинаковых букв одной такой буквой, поставив перед ней натуральное число - количество повторений буквы.
Например, вышеупомянутую последовательность можно записать как "4A3B4A3BC" и длина такой записи будет только 9 символов. Легко видеть, что группа 4A3B повторяется в этой записи два раза подряд. Запишем это повторение, применяя скобки для выделения повторяющейся группы, а перед группой напишем количество ее повторений: 2(4A3B)C . Длина этой последовательности уже только 8 символов. Разумеется, могут случиться повторяющиеся группы на нескольких уровнях. Например, последовательность "ABABCABABC" можно записать как 2(2(AB)C)

Задача
Напишите программу OLI5B, которая по данной исходной последовательности находит и выводит сжатую последовательность.

Формат входных данных (файл B.IN )
В единственной строке текстового файла B.in дана исходная последовательность. Ее длина не превосходит 250 символов

Формат выходных данных (файл B.OUT )
В единственной строке текстового файла B.out следует вывести сжатую последовательность.

Например:
Тесты Входные данные - B.IN Выходные данные - B.OUT
1 AABCCCCC 2AB5C
2 EEEEEEEEEEEEEEEEEEEEEU 21EU
3 AAAAAAAAAABABABCCD 10A2(BA)B2CD


--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.06.2025 23:37
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"