计算机基础

leetcode题目-有效括号

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。

//go语言实现(使用 栈)

func isValid(s string) bool {
	var stack []rune = make([]rune, len(s))
	var index int = -1 //栈顶指针
	for _, c := range s {
		switch c {
		case '(':
			//入栈
			index++
			stack[index] = c
		case ')':
			//出栈
			if index < 0 {
				return false
			}
			if stack[index] != '(' {
				return false
			}
			index--

		case '[':
			//入栈
			index++
			stack[index] = c

		case ']':
			//出栈
			if index < 0 {
				return false
			}
			if stack[index] != '[' {
				return false
			}
			index--

		case '{':
			//入栈
			index++
			stack[index] = c

		case '}':
			//出栈
			if index < 0 {
				return false
			}
			if stack[index] != '{' {
				return false
			}
			index--

		}

	}
	return index == -1
}

关于作者

程序员,软件工程师,java, golang, rust, c, python,vue, Springboot, mybatis, mysql,elasticsearch, docker, maven, gcc, linux, ubuntu, centos, axum,llm, paddlepaddle, onlyoffice,minio,银河麒麟,中科方德,rpm