刷题笔记day11-栈与队列2
20. 有效的括号
这个是典型的使用栈,来进行匹配。
因为栈是先进后出,所以,最近的左括号一定在栈顶。如果不是,则就是不匹配了。
func isValid(s string) bool {stack := Stack{}dict := map[byte]byte {')': '(',']': '[','}': '{',}for _, item := range []byte(s) {if leftVal, ok := dict[item]; ok {if stack.pop() != leftVal {return false}} else {stack.push(item)}}return stack.length == 0
}type Stack struct {data []bytelength int
}func (s *Stack) pop() (v byte) {if s.length < 1 {return }v = s.data[s.length-1]s.data = s.data[:s.length-1]s.length--return
}func (s *Stack) push(v byte) {s.data = append(s.data, v)s.length++
}
1047. 删除字符串中的所有相邻重复项
func removeDuplicates(s string) string {// 思路:和栈顶不等的时候,s2 := []byte(s)stack := Stack{}stack.push(s2[0])for i := 1; i < len(s2); i++ {if v := stack.top(); v != s2[i] {stack.push(s2[i])} else {stack.pop()}}return string(stack.data)
}type Stack struct {data []bytelength int
}func (s *Stack) pop() (v byte) {if s.length < 1 {return }v = s.data[s.length-1]s.data = s.data[:s.length-1]s.length--return
}func (s *Stack) top() (v byte) {if s.length < 1 {return }v = s.data[s.length-1]return
}func (s *Stack) push(v byte) {s.data = append(s.data, v)s.length++
}
题目中是连续两个重复字符才删除,那么是多个重复字符如何删除呢?
可以增加一个last_char 变量,存放着上一次的结果。
s2 := []byte(s)
stack := Stack{}
stack.push(s2[0])
var lastChar = s2[0]
for i := 1; i < len(s2); i++ {v := stack.top()if v == s2[i] {stack.pop()} else if (v != lastChar) && (v != s2[i]) {// 和上一次字符相同时,不需要入栈stack.push(s2[i])}
}
return string(stack.data)
6. 逆波兰表达式求值
逆波兰表达式是一种后缀表达式,运算符号在后面,前面俩是运算数。
本质上还是使用栈来进行取值,然后运算。
import "strconv"func evalRPN(tokens []string) int {// 思路:符号就退出两个数字,然后运算既可stack := Stack{}var (s1 ints2 intresult int)for _, val := range tokens {if val == "+" || val == "-" || val == "*" || val == "/" {s2 = stack.pop()s1 = stack.pop()if val == "+" {stack.push(s1 + s2)} else if val == "-" {stack.push(s1 - s2)} else if val == "*" {stack.push(s1 * s2)} else if val == "/" {stack.push(s1 / s2)}} else {intVal, _ := strconv.Atoi(val)stack.push(intVal)}}result = stack.pop()return result
}type Stack struct {data []intlength int
}func (s *Stack) pop() (v int) {if s.length < 1 {return }v = s.data[s.length-1]s.data = s.data[:s.length-1]s.length--return
}func (s *Stack) top() (v int) {if s.length < 1 {return }v = s.data[s.length-1]return
}func (s *Stack) push(v int) {s.data = append(s.data, v)s.length++
} 相关文章:
刷题笔记day11-栈与队列2
20. 有效的括号 这个是典型的使用栈,来进行匹配。 因为栈是先进后出,所以,最近的左括号一定在栈顶。如果不是,则就是不匹配了。 func isValid(s string) bool {stack : Stack{}dict : map[byte]byte {): (,]: [,}: {,}for _, it…...
ngixn的指令
Nginx是一个高性能的HTTP和反向代理服务器,它可以处理静态资源、动态内容、负载均衡、反向代理和HTTP缓存等任务。本文将详细介绍在CentOS上安装和配置Nginx服务器,并讲解Nginx常用指令。 安装Nginx 在CentOS上安装Nginx非常简单,只需要执行…...
管理类联考——数学——汇总篇——知识点突破——代数——函数、方程——记忆
文章目录 考点记忆/考点汇总——按大纲 整体局部 本篇思路:根据各方的资料,比如名师的资料,按大纲或者其他方式,收集/汇总考点,即需记忆点,在通过整体的记忆法,比如整体信息很多,通常…...
2014年亚太杯APMCM数学建模大赛C题公共基础课教师专业化培养方式研究求解全过程文档及程序
2014年亚太杯APMCM数学建模大赛 C题 公共基础课教师专业化培养方式研究 原题再现 近年来,世界基础工业、信息产业、服务业的跨越式发展引发了大量人才需求,导致了职业教育的飞速发展,除原有专科层次高等职业教育院校外,大量普通…...
【广州华锐互动】VR历史古城复原:沉浸式体验古代建筑,感受千年风华!
在科技日新月异的今天,虚拟现实(VR)技术已经成为了我们生活中不可或缺的一部分。从娱乐游戏到医疗健康,从教育培训到房地产销售,VR技术的应用领域日益广泛。而近年来,VR技术在文化遗产保护和古迹复原方面的…...
http和https分别是什么?
HTTP(Hypertext Transfer Protocol)和HTTPS(HTTP Secure)是互联网上应用最为广泛的两类协议,都是用于在网络中进行数据交换。 1.HTTP: HTTP是一种无状态的协议,即服务器并不保持与客户端的连接…...
C语言--一个球从100m高度自由落下,每次落地后反弹回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高
一.思路分析 这是一个简单的物理题目,解题思路比较明确。程序使用 for 循环来模拟球的下落和反弹过程,通过多次计算得到最终结果,最后使用 printf 函数将结果输出。 定义初始高度 height 和总共经过的米数 distance 的变量,初始化…...
基础知识:位运算
基础知识:位运算 1. 两类表达式2. 项目中用到位运算的🌰 1. 两类表达式 2. 项目中用到位运算的🌰 在一个表中增加一个字段,控制报餐的6个字段包括午餐、晚餐、夜餐1、夜餐2、白班、晚班。正常在表中需要增加6个字段来做开关&…...
Android菜单Menu详解
菜单资源文件通常放置在res\menu目录下,在创建项目时,默认不自动创建menu目录,所以需手动创建。 Android Resource Directory→ value menu 或在创建根元素为<menu></menu>标记的xml文件对自动气建眼 res→Android Resounce File…...
win10 + cmake3.17 + vs2017编译osgearth2.7.0遇到的坑
坑1:debug模式下生成osgEarthAnnotation时 错误:xmemory0(881): error C2440: “初始化”: 无法从“std::pair<const _Kty,_Ty>”转换为 to _Objty 出错位置:src/osgEarthFeatures/FeatureSourceIndexNode.cpp 解决办法: …...
【Linux网络编程_TCP/UDP_字节序_套接字 实现: FTP 项目_局域网聊天项目 (已开源) 】.md updata:23/11/05
文章目录 TCP/UDP对比端口号作用字节序字节序转换api套接字 socket实现网络通讯服务端 逻辑思路demo: 满血版双方通讯/残血版多方通讯 (配合进程实现)服务端 demo客户端 demo FTP 项目实现sever demo:client demo: 局域网多方通讯 ࿰…...
SpringBoot日志基础
1.yml 说明:配置yml文件。debug、info、warn、error。 logging:level:root: debug2.指定某个包 logging:level:root: info # 设置某个包的日志级别com.forever.controller: debug 3.分组调试 logging:# 设置分组group:ebank: com.forever.controlleriservic…...
linux文章导航栏
linux文章导航栏 问价解压缩大全Linux tar 备忘清单zip文件解压缩命令全 ubuntuubuntu18.04安装教程\搜狗输入法\网络配置教程Linux静态库和动态库 shellShell脚本命令...
Adobe:受益于人工智能,必被人工智能反噬
来源:猛兽财经 作者:猛兽财经 总结: (1)Adobe(ADBE)受益于生成式人工智能的兴起,其一直能实现两位数的收入增长就证明了这一点。 (2)在生成式人工智能兴起时,该公司就快…...
VScode配置 github 上传代码
初始化,设置用户名和密码 # 设置你的 Git 用户名 git config --global user.name author# 设置你的 Git 邮箱 git config --global user.email authorgmail.com# 确保 Git 输出带有颜色 git config --global color.ui auto# 查看 Git 配置 git list1. 初始化本地…...
mysql根据条件导出表数据(`--where=“文本“`)
本文只讲导出,导入可以参考不同MySQL服务的表以及库的数据迁移(/备份)-CSDN博客 现在先查下migration_one.table_11里有什么: SELECT * FROM migration_one.table_11;id name ------ -------- 12321 hehe 1321 …...
MySQL复习总结(二):进阶篇(索引)
文章目录 一、存储引擎1.1 MySQL体系结构1.2 存储引擎介绍1.3 存储引擎特点1.4 存储引擎选择 二、索引2.1 基本介绍2.2 索引结构2.3 索引分类2.4 索引语法2.5 SQL性能分析2.6 索引使用2.6.1 最左前缀法则2.6.2 范围查询2.6.3 索引失效情况2.6.4 SQL提示2.6.5 覆盖索引2.6.6 前缀…...
java APP自动化测试AppIum
一、前言 二、Appium环境搭建 2.1 JDK安装 2.2 Android SDK安装配置 2.3 模拟器安装及配置 2.4 Appium Desktop安装及使用 2.5 Appium配置连接模拟器 三、实战基本脚本编写 3.1 创建Maven项目并配置 3.2 简单Demo 四、写在最后 一、前言 随着移动互联网的发展,AP…...
【洛谷 P1303】A*B Problem 题解(高精度+字符串)
A*B Problem 题目描述 给出两个非负整数,求它们的乘积。 输入格式 输入共两行,每行一个非负整数。 输出格式 输出一个非负整数表示乘积。 样例 #1 样例输入 #1 1 2样例输出 #1 2提示 每个非负整数不超过 1 0 2000 10^{2000} 102000。 思路 …...
计算机网络(43)
目录 计算机网络学习 1、OSI 七层网络模型,你了解吗?具体功能有哪些? 2、TCP/IP四层模型? 3、说一下TCP的三次握手? 4、为什么要三次握手?两次行不行?四次呢? 5、为什么建立连接是三…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
