📄 stackapp.cpp
字号:
//括弧配对问题
#include<iostream.h>
#include<stack.h>
bool isOpen(char c)
{return(c=='('||c=='['||c=='{'||c=='<');}
char isClose(char c)
{switch(c)
{case'>':return'<';
case')':return'(';
case'}':return'{';
case']':return'[';
}
return '\0';
}
bool balance(istream& in)
{stack<char> stk; // 使用模板栈
char c;in>>c;
while (c!='#')
{if(isOpen(c)) stk.push(c); //左括弧压栈
else if(c=isClose(c)) // 关闭括弧
{ if(stk.empty())
return false; // 不匹配
else if(c==stk.top())
stk.pop(); // 匹配,配对的括弧出栈
else return false; // 不匹配
}
in>>c;
}
return stk.empty(); // 栈空则匹配
}
main()
{if (balance(cin))
cout<<"Matching."<<endl;
else cout<<"Not matching."<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -