题目是:
假设一个算术表达式中可以包含两种括号:圆括号和方括号;且这两种括号
可任意的次序嵌套使用,如 ( [ ] ( ) ) 或者 [ ( [ ] ) ] 是正确的匹配,而 [ ( ) 或
( ( ) ) ] 或 ( [ ] ( )均是错误的匹配,尝试编写程序来判断给定的表达式是否是正确的匹配?
我不知道从哪里入手 觉得找不到一个判断的标准。。。求大神指导!!!!
将括号提取先用集合保存
对应首末想匹配 大致这样实现
只是这个匹配的问题 每次还要分辨是圆括号还是方括号 就难解决了
这个不需要。你保存后就可以用equals来判断,这都是字符串。
追问我不是这个意思
我想说equals的对象有偶然性需要根据给定的表达式来
加入有匹配的三对 那么这三对嵌套的次序还有几种情况
更别提加入匹配是有n对???
要不你直接给个需求。举个例子,不是很明白你的难处。我来写代码。
追问我的意思是有没有一个通用的方法来做判断
比如分别给定表达式
(s+y)[7-8](9+1)
([2-1](3-1))
[(3-1)[3-1]]
来做判断?
追答是正规表达式不,。比如方括号里肯定是有园括号的。
追问不是正规
嵌套次序随意 但是必须是有对应的匹配
不能缺少对应括号 或者([ )这种非对应起来的次序
([])这种可以吗?里面没写任何东西的。
追问可以的