@Backer 2022-01-24 16:50 采纳率: 20%
浏览 120
已结题

匹配括号的判定(C++)

匹配括号的判定
内存限制: 256 Mb时间限制: 1000 ms
题目描述
给定一个由 (,),[ 与 ] 构成的括号字符串,请判断它是否是匹配的,匹配的定义如下:

[] 与 () 是匹配的;
如果字符串 s 是匹配的,那么 [s] 与 (s) 都是匹配的;
如果字符串 ss 与 tt 都是匹配的,那么 s\cdot ts⋅t 也是匹配的。
输入格式
单独一个字符串:表示输入的序列。

输出格式
如果输入字符串是匹配的,输出 Balanced,否则输出 Unbalanced。
数据范围
设 nn 表示输入字符串的长度

对于 50%50% 的数据,1\leq n\leq 1,0001≤n≤1,000;
对于 100%100% 的数据,1\leq n\leq 1,000,0001≤n≤1,000,000;
样例数据
输入:
[(])
输出:
Unbalanced
输入:
[()]
输出:
Balanced

  • 写回答

4条回答 默认 最新

  • [PE]经典八炮 2022-01-24 16:53
    关注

    用栈,如果是左括号就入栈,如果右括号就栈顶元素出栈,判断是否匹配,直到整个字符串匹配完成。

    评论
    1人已打赏

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月24日
  • 赞助了问题酬金10元 1月24日
  • 创建了问题 1月24日