刷题笔记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、为什么建立连接是三…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
