[数据结构] python 栈的应用:括号匹配问题
括号匹配问题:给一个字符串,其中包含小括号、中括号、大括号,求该字符串中的括号是否匹配。
例如:
()()[]{} 匹配
([{()}]) 匹配
[]( 不匹配
[(]) 不匹配
算法思想:左括号进栈。右括号不进栈,就看看栈顶有没有自己的对象,没有就不匹配。
比如有一堆括号{[}],按照栈的顺序,先进后出出入栈。
| 1.{说:“我入栈了,我的期待的对象是 }” | 2.[说 “我入栈了,我期待的对象是]” |
| 3.到了 } 时 就看看栈顶是不是期待它的对象 },结果不是 | 返回false |
以此类推代码步骤:
1.只需要从字符串中对左括号 { [ ( 进行入栈操作
2.如果遇到了一个右括号 } ] ) 则要做三件事:
①看看栈里(栈里都是左括号)是否空了,如果栈空了,右括号就没有匹配的对象了
②如果栈没空,则去看看栈顶看
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
