А1043

Задача

Построить все правильные скобочные выражения длины 10, то есть, которые содержат по 5 левых и по 5 правых скобок.

Код на языке С++:

Посмотреть программу можно здесь

Код на языке Java:

Ссылка на программу: http://ideone.com/9MjHSA

Решение:

В переменной [latex]x[/latex] мы будем хранить количество открытых ([latex]»(«[/latex]) скобок. Далее  проверяем условие, что если [latex]x>0[/latex], то можем поставить закрывающую ([latex]»)»[/latex]) скобку. Идем дальше, смотрим сколько свободных мест осталось и если мест осталось столько же, сколько открывающих, то все остальные закрывающие.

Related Images:

One thought on “А1043

  1. Какая задача хорошая, правда?
    — Ваша ссылка на https://ideone.com/P50DRL не работает. Скорее всего Вы засекретили код.
    — Вы пишите «и если мест осталось столько же, сколько открывающих», но в коде Вы не это проверяете.
    — Вы совсем забыли объяснить, почему эта рекурсивная функция обязательно переберет все возможные расстановки скобок.

Добавить комментарий