建设网站必须要服务器吗,开发手机app用什么语言,阜阳市住房和城乡建设部网站,大连承揽营销型网站公司1、20. 有效的括号
题目#xff1a; 给定一个只包括 ‘(’#xff0c;‘)’#xff0c;‘{’#xff0c;‘}’#xff0c;‘[’#xff0c;‘]’ 的字符串 s #xff0c;判断字符串是否有效。 有效字符串需满足#xff1a; 左括号必须用相同类型的右括号闭合。 左括号…1、20. 有效的括号
题目 给定一个只包括 ‘(’‘)’‘{’‘}’‘[’‘]’ 的字符串 s 判断字符串是否有效。 有效字符串需满足 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。
思路
注意for range 的v 和s[i] 类型是不同的即可
func isValid(s string) bool {// 代码一刷map1 : map[rune]rune {) : (,} : {,] : [,}stack1 : make([]rune, 0)for _,v : range s {if len(stack1) 0 map1[v] ! stack1[len(stack1)-1] map1[v] {stack1 stack1[:len(stack1)-1]} else {stack1 append(stack1, v)}}if len(stack1) 0 {return true}return false
}
2、1047. 删除字符串中的所有相邻重复项
题目 给出由小写字母组成的字符串 S重复项删除操作会选择两个相邻且相同的字母并删除它们。 在 S 上反复执行重复项删除操作直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
思路
go for range时候把它当成rune了就uint32想邻的
func removeDuplicates(s string) string {// 代码一刷stack : make([]rune, 0)for _,v : range s {if len(stack) 0 v stack[len(stack)-1] {stack stack[: len(stack)-1]} else {stack append(stack, v)}}return string(stack)
}3、150. 逆波兰表达式求值
题目 输入tokens [“4”,“13”,“5”,“/”,“”] 输出6 解释该算式转化为常见的中缀算术表达式为(4 (13 / 5)) 6
思路
Atoi i 代表 int遇见算数符号就将前两位数字运算结果代替前两位数字即可
func evalRPN(tokens []string) int {// 代码一刷stack : make([]int, 0)for _,v : range tokens {if v ! v ! - v ! * v ! / {val, _ : strconv.Atoi(v)stack append(stack, val)} else {switch v {case :val : stack[len(stack)-1] stack[len(stack)-2]stack stack[:len(stack)-2]stack append(stack, val)case -:val : stack[len(stack)-2] - stack[len(stack)-1]stack stack[:len(stack)-2]stack append(stack, val)case *:val : stack[len(stack)-2] * stack[len(stack)-1]stack stack[:len(stack)-2]stack append(stack, val)case /:val : stack[len(stack)-2] / stack[len(stack)-1]stack stack[:len(stack)-2]stack append(stack, val)}}}return stack[0]
}