刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

括号画家

Candela是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚起床的Candela画了一排括号序列,其中包含小括号()、中括号[]和大括号{},总长度为N。这排随意绘制的括号序列显得杂乱无章,于是Candela定义了什么样的括号序列是美观的:
(1) 空的括号序列是美观的;
(2) 若括号序列A是美观的,则括号序列(A)、[A]、{A}也是美观的;
(3) 若括号序列A、B都是美观的,则括号序列AB也是美观的;
例如 [(){}]() 是美观的括号序列,而 )({)[}]( 则不是。
现在Candela想知道她画出的括号序列是不是美观的。你能帮帮她吗?

时间限制:1000

内存限制:262144

输入

一个括号序列,长度不超过10000。

输出

如果它是美观的,输出Yes,否则输出No。

样例输入

{}[(){}]()

样例输出

Yes

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】:本题是一个判断括号序列是否美观的问题。我们可以使用栈来解决这个问题。首先,我们遍历括号序列中的每一个字符。对于每一个字符,我们进行以下操作:1. 如果字符是左括号(即(、[、{),则将其压入栈中。2. 如果字符是右括号(即)、]、},则判断栈是否为空。如果为空,说明没有与之匹配的左括号,直接返回False。如果不为空,则从栈顶弹出一个元素,检查该元素是否与当前的右括号匹配。如果匹配,则继续遍历;否则,说明当前的右括号没有与之匹配的左括号,返回False。遍历结束后,如果栈为空,说明所有的左括号都有与之匹配的右括号,返回True;否则,返回False。最后,我们根据判断结果输出Yes或No。
创作类型:
原创

本文链接:括号画家 Candela是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚起床的Can

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share