如果用户给我一串任意组合的字符串,如(()())
,那么我想要一个程序来检查支架的打开和关闭,并且还将每个支架的打开和关闭地址分别存储在一个安排的方式。我该怎么办?
答案 0 :(得分:0)
如果支架类型是一种类型,则无需通过增加或减少计数器来保存某些东西。
例如以下
#include <stdio.h>
#include <stdbool.h>
bool isBalanceBracket(const char *s){
int count = 0;
for(int i = 0; s[i] ; ++i){
if(s[i] == '(')
++count;
else if(s[i] == ')')
if(--count < 0)
return false;
}
return count == 0;
}
int main(void){
const char *test[] = {
"(()())", ")()(", "()))"
};
for(int i = 0; i < sizeof(test)/sizeof(*test); ++i){
if(isBalanceBracket(test[i]))
printf("%s is OK\n", test[i]);
else
printf("%s is NG\n", test[i]);
}
return 0;
}