您的位置 首页 知识

检验括号匹配的算法C语言 检验括号匹配的算法是什么

检验括号匹配的算法?

bool braceMatg(const char* str){

int brace=0;

for (int i=0; i<strlen(str); i++) {

if (str[i]=='(‘) {

brace++;

}else if(str[i]==’)’){

brace–;

}

if (brace<0) {

return false;

}

}

if (brace==0) {

return true;

}

return false;

}

int main()

{

char str[1000];

while (true) {

memset(str, 0, sizeof(str));

if (!cin.getline(str, 1000, ‘n’)) {

break;

}

cout<<braceMatg(str)<<endl;

}

return 0;

}

延伸阅读

如何判断一个字符串(有括号)中括号是否成对匹配?

思路是遇到左括号就入栈,碰到右括号就判断栈顶的元素是否匹配的左括号,不是的话就返回false,是的话就弹出栈顶元素,然后继续下一个字符。判断函数如下:

bool is_comm_stack(char const* src){ assert(src); char ch; char const* p=src; stack

使用vi作为文本编辑器写perl脚本,如何实现括号匹配的语法检查?

在命令模式下,把光标移动到一个括号上(可以通过先键入f,再键入括号),然后用%,光标就会自动跑到另一侧括号。适用于()[]{}。

用栈实现检验括号匹配的算法?

思想是先进栈,获取第一个半边括号,标记一下,继续进栈直到获取到第二个与之匹配的另一外括号,然后出栈,取出内容。就这样。。

python同时判断小括号和中括号是否配对成功?

简单地匹配(判断出现的左右中括号、左右小括号出现个数是一样)的python代码如下:

from collections import Counter

s=list(input(“请输入待检测代码串: “))

cnt=Counter(s)

if cnt[‘(‘]==cnt[‘)’] and cnt[‘[‘]==cnt[‘]’]:

print(“括号匹配结果成功!”)

else:

print(“匹配失败,请重新校对代码串。。。”)

复杂的检测可能会用到正则表达式,以上,就当小弟抛砖引玉吧。

用栈检测括号匹配?

这是其中括号匹配的函数部分:

voidmatch(SeqStackS,char*str)//括号的比较

{

inti;

charch;

for(i=0;str[i]!=’’;i++)

{

switch(str[i])

{

case'(‘:

case'[‘:

case'{‘:

Push(&S,str[i]);

break;

case’)’:

case’]’:

case’}’:

if(GetTop(&S)==’#’)

{

printf(“n-_-!!!右括号多余!n”);

exit(0);

}

else

{

ch=GetTop(&S);

if(Compare(ch,str[i]))

Pop(&S);

else

{

printf(“n-_-!!!对应的左右括号不同类!n”);

exit(0);

}

}

}

}

if(GetTop(&S)==’#’)

printf(“n^_^括号匹配!^_^n”);

else

{

printf(“n-_-!!!左括号多余!n”);

exit(0);

}

}

版权声明