<分区>
如果我想检查一个字符串是否使用了有效的括号,我可以使用这个简单的代码:
int counter = 0;
for(int i = 0; i < length_of_string; i++){
if(string[i] == '(' )
counter++;
else if(string[i] == ')' ) // string is a char array
counter--;
if(counter < 0)
return -1; // error because the ')' should come AFTER '('
}
if(counter == 0)
return 0; // the string is OK
else
return -1; // unbalanced
我的问题是 - 我认为这段代码做得很好,但我已经看到一些使用堆栈的实现。这是为什么?使用堆栈是否让我能够处理更复杂的案例?