当前位置: 首页 > news >正文

【代码随想录】算法训练计划11

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]
}
http://www.lryc.cn/news/217617.html

相关文章:

  • Jmeter之JSR223
  • c++23中的新功能之十八新增的属性
  • 动手学深度学习:1.线性回归从0开始实现
  • 【计算机网络】应用层
  • python 深度学习 解决遇到的报错问题9
  • 能源管理系统为什么选择零代码开发平台?
  • 【LeetCode】剑指 Offer Ⅱ 第8章:树(12道题) -- Java Version
  • 利用maven的dependency插件将项目依赖从maven仓库中拷贝到一个指定的位置
  • 在Flask中实现文件上传七牛云中并下载
  • 【Linux】centOS7安装配置及Linux的常用命令---超详细
  • 【ES专题】ElasticSearch搜索进阶
  • 【iOS免越狱】利用IOS自动化WebDriverAgent实现自动直播间自动输入
  • Python基础入门例程28-NP28 密码游戏(列表)
  • 乌班图 Linux 系统 Ubuntu 23.10.1 发布更新镜像
  • Java金字塔、空心金字塔、空心菱形
  • 前端 | (十四)canvas基本用法 | 尚硅谷前端HTML5教程(html5入门经典)
  • 206.反转链表
  • SpringBoot项目从resources目录读取文件
  • SQL实现根据时间戳和增量标记IDU获取最新记录和脱IDU标记
  • 京东数据平台:2023年9月京东智能家居行业数据分析
  • 计算两个时间之间连续的日期(java)
  • Kali Linux:网络与安全专家的终极武器
  • Leetcode—101.对称二叉树【简单】
  • 判断是否工作在docker环境
  • 文件上传学习笔记
  • 【GitLab CI/CD、SpringBoot、Docker】GitLab CI/CD 部署SpringBoot应用,部署方式Docker
  • GitLab(2)——Docker方式安装Gitlab
  • [100天算法】-数组中的第 K 个最大元素(day 54)
  • 每日一题411数组中两个数的最大异或值(哈希表、前缀树:实现前缀树)
  • 机场运行关键指标计算规则