Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строки и подстроки 
:(
    Опции темы
brejnev
Дата 17.2.2006, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 18.9.2005

Репутация: нет
Всего: нет



Помогите придумать вот такой алгоритм.
На вход поступает строка, пусть такая "BABBAABBAB", на выходе будет такая вещь
Let(B)
Let(A)
Let(B)
Let(B)
Let(A)
Repeat(4)
Let(B)
End
То есть алгоритм выводит неповторяющиеся подряд символы как есть, но если встречается повторяющаяся подряд подстрока, то она не выводитя, вмето нее Repeat.
PM MAIL   Вверх
Akina
Дата 17.2.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 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(начальная_строка)



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0766 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.