Помощь - Поиск - Пользователи - Календарь
Полная версия: Строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
starmaster
На первый взгляд кажется лёгкой, но если заглянуть поглубже...

Дана строка. Удалить из нее последовательности символов, расположенные между скобками. Скобки также удалить. После первой открывающей скобки другие открывающие скобки игнорируются. Если скобка не закрывается до конца строки, то удалять все до конца строки. Закрывающая скобка без парной открывающей игнорируется.
volvo
:no: Не слабо ...

Цитата
На первый взгляд кажется лёгкой, но если заглянуть поглубже...


... то она просто элементарная !!!


Код

const
 s: string = 'this is a test of (very) simple) (program';

var first, second: byte;
begin
 repeat
   first := pos( '(', s );
   if first > 0 then
     begin
       second := pos(')', copy(s, first+1, length(s) - first)) + first;
       if second = first then second := length(s);
       if second > first then
         delete(s, first, second - first + 1);
     end;
 until first = 0;
 writeln( 's = ', s );
end.


:D
starmaster
volvo
Ну и неправильно...

Пример
Вход:
ab(hj)bh(jk(jju(jk)in

Выход:

abbhin

Вот из-за таких мелочных вещей и происходят проблемы в больших проектах...
volvo
Цитата
Ну и неправильно...


А тебе голова на что? Трудно было единичку добавить? angry.gif

Кстати, пример входа и выхода мог бы дать сразу ...
starmaster
volvo
Неправильно говорит GNU Pascal на сайте и знаешь почему? Да потому что, подставь, допустим ab(a(aaa)b)bbb) получаем: abb)bbb) не сходится по условию...
starmaster
Кстати, вот ссылка на задачу:
http://progr.tsi.lv/cgi-bin/tester/task.pl?task=5019
volvo
starmaster

Извини меня, конечно, но учись формулировать условие:

Цитата
После первой открывающей скобки другие открывающие скобки игнорируются.


ab(a(aaa[b])b)bbb)

Что ты хотел получить?
Про вложенность нигде ничего сказано не было ...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.