Если вы пытаетесь посчитать, что число (
совпадает с числом )
, просто пропустите строку после сохранения счетчиков, увеличивая, если вы видите (
, и уменьшая, если вы видите )
. Это O(n)
, и вы не можете сделать лучше; Вы должны проверять каждого персонажа.
Однако я подозреваю, что вы хотели задать другой вопрос. А именно, как вы скажете, если баланс (
равен )
. В этом случае вы поддерживаете стек и толкаете каждый раз, когда видите (
, и вы всплываете, когда видите )
. Если вы когда-нибудь попытаетесь всплыть, когда стек пуст, скобки не сбалансированы. Если при достижении конца входной строки стек не пуст, скобки не сбалансированы.
Конечно, вы можете просто имитировать это с помощью счетчика, но об этом более естественно думать с точки зрения стека.