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
;
}
查看全文
相关阅读:
jsp.图书馆
jsp第七次作业
jsp第六次作业
jsp第四次作业
JSP第二次作业
软件测试课堂练习
Android第六次作业
Android第五次作业
Android第四次作业
Android第三次作业
原文地址:https://www.cnblogs.com/zhouyinhui/p/395117.html
最新文章
iOS动画:UIView动画和CALayer动画(CABasicAnimation、CAKeyframeAnimation的使用)
iOS开发:通过经纬度获得城市、省份等信息
iOS开发OC基础:OC数组对象NSArray的常用方法
iOS开发:使用Block在两个界面之间传值
协议
block
通知中心
iOS 创建单例的两种方法
iOS界面跳转
最新版SDWebImage的使用
热门文章
JAVA-通过接口读取本地jar包,并调用其中实现了接口的类中的方法
mybatis入门
Spring、SpringMVC和Hibernate简单整合
SpringMVC拦截器
SpringMVC文件上传
SpringMVC基本类型绑定
SpringAOP之动态代理
Spring整合Hibernate
Hibernate-多表关系
Hibernate-缓存
Copyright © 2011-2022 走看看