Преобразование строки

W1
На сайте с 08.06.2010
Offline
13
424

Прошу помочь с написанием небольшого скрипта на php. Итак, есть строка в которой встречаются только два символа @ и #(пример строки: @@#@@@###@@). Надо изменить эту строку в соответствии с правилами:

1. Подстроки вида @@@ заменяются на подстроки вида ##@. Т.е. все символы в подстроке заменяются на противоположный кроме последнего. А с решетками точно также.

2. В строке необходимо убрать каждый символ, отличающийся от предыдущего. Т.е. в подстроке @@# символ # должен быть удален. Если ,например, после группы # идет группа @, то следует удалить первую @, ибо этого требует правило(при этом не стоит забывать и о первом пункте)

вот пример, как должна быть преобразована строка:

исх-##@###@##@@@@###

рез-@#@@#@###@@#

в примере мог ошибиться. Следуйте правилу. Весь день мучаюсь

ДП
На сайте с 23.11.2009
Offline
203
#1

Я так понимаю, что подстрока из двух символов не рассматривается, тогда вот что получится:

1. из любой строки из одинаковых символов у нас получится строка с другим последним символом.

2. по условию 2 в такой строке убираются все символы кроме последнего (другого).

В итоге должна получиться строка из чередующихся символов, как мне кажется.

Тут правда не понятно до каких пор идет обработка, т.е. вот на примере вашем:


из
##@###@##@@@@###
должно получиться
#@@##@@#@@@@###@
если рассматривать по частям только исходную строку
[##]@[###]@[##][@@@@][###]
или заменили первую группу и продолжаем сначала?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий