Задачи
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

Play-test

https://dotnetfiddle.net/Ebi994