zoukankan
html css js c++ java
堆栈小应用:配对
在“配对”问题中,栈将使问题大大简化和更富逻辑性。一个简单的例子,我们来看看如何判断表达式中的小括号是否配对。如果没有栈,这问题就不会那么美妙了。
只要你脑袋里能联想到“栈”这个词,解决方案就会变得非常简单。
遍历表达式,遇到左括号则进栈,遇到有括号则将栈顶左括号弹出,遍历完后,栈应该为空。如果不能顺利执行此过程那么表达式的括号则一定不匹配。
#include
<
iostream
>
#include
<
string
>
#include
<
stack
>
using
namespace
std;
int
main()
{
stack
<
char
>
stk;
string
exp;
bool
ok
=
true
;
cin
>>
exp;
const
int
len
=
exp.length();
for
(
int
i
=
0
; i
<
len; i
++
)
{
if
(exp[i]
==
'
(
'
)
{
stk.push(exp[i]);
}
else
if
(exp[i]
==
'
)
'
)
{
if
(
!
stk.empty())
{
stk.pop();
}
else
{
cout
<<
"
not find \'(\' for \')\' at index of
"
<<
i
<<
endl;
ok
=
false
;
}
}
}
if
(
!
stk.empty())
{
cout
<<
"
not find \')\' for \'(\'
"
<<
endl;
ok
=
false
;
}
if
(ok)
{
cout
<<
"
ok
"
<<
endl;
}
return
0
;
}
查看全文
相关阅读:
1039 到底买不买 (20分)
流密码
Socket网络编程:互相通讯
1036 跟奥巴马一起编程
1033 旧键盘打字
1029 旧键盘
1015 德才论 (25分)
BUU_Real_刷题记录
vue3 composition api 对比 react hooks
vue3 文档相关
原文地址:https://www.cnblogs.com/zhouyinhui/p/395117.html
最新文章
修改 VLC 录像文件名小工具
MSYS静态编译opencv-4.4.0时注意事项
gcc-10.2.1-i686-posix-sjlj-ssp-20200907-ce3001f 解决了 : 问题
安卓获取步数
APB VNext系列(二):消息队列ReBus
APB VNext系列(一):依赖注入
互联网HR必须问到的问题
自动化架构如何写,写自动化的步骤,注重自动化设计的思维能力
服务器性能差的原因分析思路
python警告:Unused variable 'e'
热门文章
敲回车键 阻止表单提交行为
layer.open+vue+jquery父子页面之间互相传值(完整版)建议收藏!!!
svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted
数据库的3大范式&5大约束&反范式化
JAVA中try、catch、finally带return的执行顺序总结
三个线程交替顺序打印ABC
记刷题过程中发现的C++与C的差异
calc
Android布局生成分享图片代码实例(含最新demo)
把两个APP合并成一个(把其中一个做成library)
Copyright © 2011-2022 走看看