Skip to content

Latest commit

 

History

History
24 lines (18 loc) · 1.36 KB

2.1.4.3 GenerateBrackets.md

File metadata and controls

24 lines (18 loc) · 1.36 KB

Generate Brackets

  1. Генерация скобочных последовательностей
  2. Разбор решения

Дано целое число n. Требуется вывести все правильные скобочные последовательности длины 2 ⋅ n, упорядоченные лексикографически (см. https://ru.wikipedia.org/wiki/Лексикографический_порядок). В задаче используются только круглые скобки.

func generateBrackets(_ str: String, l countOfOpen: Int, r countOfClosed: Int, pairsOfBrackets: Int) {
     if countOfOpen == pairsOfBrackets && countOfClosed == pairsOfBrackets {
        print(str)
    } else {
        if countOfOpen < pairsOfBrackets { generateBrackets(str + "(", l: countOfOpen + 1, r: countOfClosed, pairsOfBrackets: pairsOfBrackets) }
        if countOfClosed < countOfOpen { generateBrackets(str + ")", l: countOfOpen, r: countOfClosed + 1, pairsOfBrackets: pairsOfBrackets) }
    }
}

generateBrackets("", l: 0, r: 0, pairsOfBrackets: 4)

2.1.4.2 Count Chart In String Theme | Back To iOSWiki Contents | 2.1.4 Sorting Theme