Дано целое число 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