![]() |
|
|
![]()
|
|
| brejnev |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 94 Регистрация: 18.9.2005 Репутация: нет Всего: нет |
Помогите придумать вот такой алгоритм.
На вход поступает строка, пусть такая "BABBAABBAB", на выходе будет такая вещь Let(B) Let(A) Let(B) Let(B) Let(A) Repeat(4) Let(B) End То есть алгоритм выводит неповторяющиеся подряд символы как есть, но если встречается повторяющаяся подряд подстрока, то она не выводитя, вмето нее Repeat. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Пусть выведено уже N символов.
Делим строку на 2 части - символы 1-N (s1) и остаток (s2). Если s2 короче s1 - s1=Right(s1,len(s2)). Сравниваем s1 и s2. Если равны - пишем Repeat(Len(s1)), затем N=N+Len(s1) и повторяем. Иначе Если Len(s1)=2 - пишем Let(Left(s2,1)), затем N=N+1 и повторяем. Иначе s1=mid(s1,2); s2=left(s2,len(s1)) Повторяем до N=Len(начальная_строка) -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |