借用栈结构
我们用栈来保存未匹配的左括号,从左到右依次扫描字符串。当扫描到左括号时,则将其压入栈中;当扫描到右括号时,从栈顶取出一个左括号。如果能够匹配,比如“(”跟“)”匹配,“[”跟“]”匹配,“{”跟“}”匹配,则继续扫描剩下的字符串。如果扫描的过程中,遇到不能配对的右括号,或者栈中没有数据,则说明为非法格式。当所有的括号都扫描完成之后,如果栈为空,则说明字符串为合法格式;否则,说明有未匹配的左括号,为非法格式。
package main
import (
"errors"
"fmt"
)
type Stack struct {
arr []interface{
} //切片
stackSize int //栈中元素的个数
}
func NewStack()Stack {
stack:=Stack{
arr:make([]interface{
使用栈解决表达式括号匹配问题

通过栈结构检查括号匹配,遍历字符串,遇到左括号入栈,遇到右括号尝试与栈顶左括号匹配,不匹配或栈空则非法,所有括号检查完栈空为合法格式。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



