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