Задачи
September 30
Задача. Максимальная глубина вложенности скобок
Задача. Дана валидная строка с круглыми скобками. Необходимо вернить глубину вложенности строки.
Справка. Глубина вложенности - это максимальное количество вложенных круглых скобок.
S = "(4)+((5))+(((6)))"
Output: 3
Разбор
Так как исходная строка является валидной строкой с круглыми скобками, то мы можем просто считать количество открывающихся скобок и количество закрывающихся скобок.
Счетчик будет увеличиваться для открывающихся скобок и уменьшаться для закрывающихся. Максимальное значение этого счетчика и даст нам максимальную глубину вложенности скобок.
Реализация
public int MaxDepth(string s) { int depth = 0; int curDepth = 0; for (int i = 0; i < s.Length; i++) { curDepth = s[i] == '(' ? curDepth + 1 : s[i] == ')' ? curDepth - 1 : curDepth; depth = Math.Max(depth, curDepth); } return depth; }
https://gist.github.com/unilecs/c884acbca7f93304974f8ddb6e6d811e