C 支架开启和关闭的存储地址
如果用户给我一个括号的任意组合字符串,比如,那么我想要一个程序来检查括号的打开和关闭,并以一种安排的方式分别存储每个括号的打开和关闭地址。如何操作?如果括号是一种类型,则不必仅通过增加或减少计数器来保存某些内容 例如下面的例子C 支架开启和关闭的存储地址,c,C,如果用户给我一个括号的任意组合字符串,比如,那么我想要一个程序来检查括号的打开和关闭,并以一种安排的方式分别存储每个括号的打开和关闭地址。如何操作?如果括号是一种类型,则不必仅通过增加或减少计数器来保存某些内容 例如下面的例子 #include <stdio.h> #include <stdbool.h> bool isBalanceBracket(const char *s){ int count = 0; for(int i = 0; s[i] ;
#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;
}
使用堆栈或递归调用跟踪嵌套,使用列表或类似的方法跟踪排序。只需倒计时、倒计时。请给我键入的代码,但如何存储括号开头和结尾的地址?例如,如果用户输入,则我希望每个括号的地址为1,6 2,3 4,5bracket@NavinChauhan为什么这是必要的?我认为最好实现一个堆栈。我想从最里面删除变量bracket@NavinChauhan我认为仅仅保存地址是没有用的。因为这对的位置并不代表支架的深度。最好创建语法树之类的东西。