检验括号匹配的算法?
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]!=’