【每日刷题】Day33
【每日刷题】Day33

🥕个人主页:开敲🍉
🔥所属专栏:每日刷题🍍
🌼文章目录🌼
1. 20. 有效的括号 - 力扣(LeetCode)
2. 445. 两数相加 II - 力扣(LeetCode)
3. 1021. 删除最外层的括号 - 力扣(LeetCode)

1. 20. 有效的括号 - 力扣(LeetCode)
//思路:栈的基本使用。
typedef char STDataType;
typedef struct Stack
{
STDataType* arr;
int top;
int capacity;
}ST;
//初始化栈void StackInit(ST* st)
{
st->arr = NULL;
st->top = 0;
st->capacity = 0;
}
//入栈
void StackPush(ST* st,STDataType s)
{
assert(st);
if(st->top==st->capacity)
{
int newcapacity = st->capacity == 0?4:2*st->capacity;
STDataType* tmp = (STDataType*)realloc(st->arr,newcapacity*sizeof(STDataType));
if(tmp==NULL)
{
perror("malloc:");
exit(-1);
}
st->capacity = newcapacity;
st->arr = tmp;
}
st->arr[st->top] = s;
st->top++;
}
//获取栈顶元素
STDataType StackTop(ST* st)
{
assert(st);
assert(st->top>0);
return st->arr[st->top-1];
}
//出栈
void StackPop(ST* st)
{
assert(st);
assert(st->top>0);
st->top--;
}
//判断栈是否为空
bool StackEmpty(ST* st)
{
assert(st);
return st->top == 0;
}
bool isValid(char* s)
{
ST st;
StackInit(&st);//初始化栈
while(*s)
{
if(*s=='{'||*s=='['||*s=='(')//如果遇到左括号,则入栈
{
StackPush(&st,*s);
}
else//如果遇到右括号,将栈中元素出栈
{
if(StackEmpty(&st))//如果前面没有入过栈,则直接返回
{
return false;
}
STDataType tmp = StackTop(&st);//先取得栈顶元素,判断是否与右括号匹配
StackPop(&st);//出栈
if((tmp=='('&&*s!=')')//如果不匹配,直接返回
||(tmp=='{'&&*s!='}')
||(tmp=='['&&*s!=']'))
{
return false;
}
}
s++;
}
bool ret = StackEmpty(&st);//判断栈是否为空,为空说明所有左括号均与右括号匹配,为true,否则为false
return ret;
}
2. 445. 两数相加 II - 力扣(LeetCode)
//思路:栈和链表的基本使用。
typedef struct ListNode LN;
int max(int x,int y)
{
return x>y?x:y;
}
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2)
{
LN* newhead = NULL;
int i = 0;
int j = 0;
int arr1[100] = {0};
int arr2[100] = {0};
LN* pmove1 = l1;
LN* pmove2 = l2;
int flag = 0;
while(pmove1)//链表1入栈
{
arr1[i++] = pmove1->val;
pmove1 = pmove1->next;
}
while(pmove2)//链表2入栈
{
arr2[j++] = pmove2->val;
pmove2 = pmove2->next;
}
i--;//定位栈顶元素
j--;
while(i>=0||j>=0)//两个栈同时出栈,元素相加,判断是否需要进位
{
LN* newnode = (LN*)malloc(sizeof(LN));//新节点,以头插的方式插入新链表
newnode->next = newhead;
newhead = newnode;
int x = i>=0?arr1[i]:0;//栈1元素
int y = j>=0?arr2[j]:0;//栈2元素
int tmp = (x+y+flag)%10;
newnode->val = tmp;
if(x+y+flag>=10)//判断是否进位
{
flag = 1;
}
else
{
flag = 0;
}
if(i>=0)//防止栈越界访问
{
i--;
}
if(j>=0)
{
j--;
}
}
if(flag)//如果出了循环,flag还为1,则说明最高位进了1,创建新节点,节点val为1,头插进链表中
{
LN* newnode = (LN*)malloc(sizeof(LN));
newnode->next = newhead;
newnode->val = 1;
newhead = newnode;
}
return newhead;
}
3. 1021. 删除最外层的括号 - 力扣(LeetCode)
//0ms 100%思路:与第一题类似,栈的基础使用。
typedef int STDataType;
//栈结构体
typedef struct Stack
{
STDataType* arr;
int top;
int capacity;
}ST;
//初始化栈
void StackInit(ST* st)
{
assert(st);
st->arr = NULL;
st->capacity = st->top = 0;
}
//释放栈
void StackRelease(ST* st)
{
assert(st);
free(st->arr);
st->arr = NULL;
st->capacity = st->top = 0;
}
//判空
bool StackEmpty(ST* st)
{
assert(st);
return st->top == 0;
}
//入栈
void StackPush(ST* st, STDataType x)
{
assert(st);
if (st->top == st->capacity)
{
int newcapacity = st->capacity == 0 ? 4 : 2 * st->capacity;
STDataType* tmp = (STDataType*)realloc(st->arr,sizeof(STDataType) * newcapacity);
if (tmp == NULL)
{
perror("malloc:");
exit(-1);
}
st->arr = tmp;
st->capacity = newcapacity;
}
st->arr[st->top] = x;
st->top++;
}
//出栈
void StackPop(ST* st)
{
assert(st);
assert(st->top > 0);
st->top--;
}
//获取栈顶元素
STDataType StackTop(ST* st)
{
assert(st);
assert(st->top > 0);
return st->arr[st->top - 1];
}
char* removeOuterParentheses(char* s)
{
ST st;
StackInit(&st);//初始化栈
char* arr = (char*)malloc(sizeof(char)*100000);//新空间存储删除后的字符串
int count = 0;
while(*s)
{
if(*s=='(')//如果为左括号入栈
{
StackPush(&st,*s);
}
if(st.top>1)//如果栈中元素大于1,说明当前*s不是要删除的括号,直接放入创建好的空间中
{
arr[count++] = *s;
}
if(*s==')')//如果是右括号,与栈中左括号匹配,出栈
{
StackPop(&st);
}
s++;
}
arr[count] = '\0';
return arr;
}
相关文章:
【每日刷题】Day33
【每日刷题】Day33 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 20. 有效的括号 - 力扣(LeetCode) 2. 445. 两数相加 II - 力扣(…...
vivado刷题笔记46
题目: Design a 1-12 counter with the following inputs and outputs: Reset Synchronous active-high reset that forces the counter to 1 Enable Set high for the counter to run Clk Positive edge-triggered clock input Q[3:0] The output of the counter c…...
网络基础——校验
网络基础——校验 网络通信的层次化模型(如OSI七层模型或TCP/IP四层模型)中,每一层都有其特定的校验机制来确保数据传输的正确性和完整性。 物理层 校验方式 不直接涉及校验和,但会采用信号编码技术(如曼彻斯特编码…...
SparkSQL与Hive整合 、SparkSQL函数操作
SparkSQL与Hive整合 SparkSQL和Hive的整合,是一种比较常见的关联处理方式,SparkSQL加载Hive中的数据进行业务处理,同时将计算结果落地回Hive中。 整合需要注意的地方 1)需要引入hive的hive-site.xml,添加classpath目录下面即可…...
K8s: Helm搭建mysql集群(2)
搭建 mysql 集群 应用中心,mysql 文档参考https://artifacthub.io/packages/helm/bitnami/mysql 1 )helm 搭建 mysql A. 无存储,重启数据丢失 添加源 $ helm repo add mysql-repo https://charts.bitnami.com/bitnami安装 $ helm install…...
matlab期末知识
1.期末考什么? 1.1 matlab操作界面 (1)matlab主界面 (2)命令行窗口 (3)当前文件夹窗口 (4)工作区窗口 (5)命令历史记录窗口 1.2 matlab搜索…...
多台服务器共享python虚拟环境和Linux安装python虚拟环境
文章目录 一、新增服务器环境搭建1. python3 环境搭建2.必要软件安装3. 目录挂载1 ./toolchain 挂载:2. /virtualenvs挂载: 4. 安装驱动和sdk 二、多台服务器共享python虚拟环境 一、新增服务器环境搭建 1. python3 环境搭建 16.04 系统默认 python3.5&…...
在Python中安装和使用pandas库
在Python中安装和使用pandas库是一个相对简单的过程。以下是具体的步骤: 安装pandas库 你可以使用Python的包管理器pip来安装pandas。打开你的命令行工具(在Windows上可能是CMD或PowerShell,在macOS或Linux上可能是Terminal)&am…...
零基础学习数据库SQL语句之查询表中数据的DQL语句
是用来查询数据库表的记录的语句 在SQL语句中占有90%以上 也是最为复杂的操作 最为繁琐的操作 DQL语句很重要很重要 初始化数据库和表 USE dduo;create table tb_emp(id int unsigned primary key auto_increment comment ID,username varchar(20) not null unique comment…...
C++语法|bind1st和bind2nd的用法
文章目录 What什么是?How什么时候用?如何用?bind1st和bind2nd的底层实现原理my_find_if分析myBind1st分析 What什么是? bind1st 和bind2nd分别是一个用来绑定函数对象的第一个参数或第二个参数的适配器。它在 C98 和 C03 标准中很…...
Zabbix+Grafana-常见报错及异常处理方式记录
文章目录 Zabbix安装篇Zabbix Web页面连接数据库失败 Zabbix使用篇中文显示不全 Zabbix报警篇新建的用户,配置报警后,无法收到报警 Grafana安装篇Windows系统安装时,添加zabbix报错:An error occurred within the plugin Zabbix安…...
一键转换,MP4视频变为MP3音频,只需这一行代码!
想要将珍藏的视频配乐提取出来?想把喜欢的电影原声变成音频?现在,只需一行代码,就能轻松将MP4视频转换为MP3音频! 这篇文章将带你一步步完成转换,并详细解释每一步的操作,即使你是新手也能轻松…...
Oracle12之后json解析包怎么调用
在 Oracle 12g 及之后的版本中,Oracle 提供了对 JSON 的原生支持,使得在数据库中存储、查询和解析 JSON 数据变得更为简单。你可以使用 Oracle 提供的 SQL 函数和操作符来处理 JSON 数据。 以下是一些常用的 Oracle SQL 函数和操作符,用于解…...
wordpress子比主题美化-为图文列表封面添加动态缩略图特效 多种效果演示
wordpress子比主题-为图文列表文章封面添加动态缩略图特效 给自己子比主题加一个列表文章封面添加动态缩略图 直接复制以下代码,添加到主题自定义CSS代码中即可,下图为效果演示 wordpress子比主题-为图文列表文章封面添加动态缩略图特效 给自己子比主题…...
spring boot3多模块项目工程搭建-上(团队开发模板)
⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 目录 写在前面 多模块结构优缺点 模块介绍 Common 模块: API 模块: Web 模块: Service 模块: DAO 模块: 搭建步骤 1.创建 父…...
人脸美型SDK解决方案,适用于各类应用场景
视频内容已经成为企业宣传、产品展示、互动直播等多个领域的核心载体。而在这些场景中,高质量的人脸美型效果不仅能够提升用户体验,更能为品牌加分。美摄科技凭借深厚的技术积累和行业洞察,推出了全新的人脸美型SDK解决方案,为企业…...
RS2103XH 功能和参数介绍及规格书
RS2103XH 是一款单刀双掷(SPDT)模拟开关芯片,主要用于各种模拟信号的切换和控制。下面是一些其主要的功能和参数介绍: 主要功能特点: 模拟信号切换:能够连接和断开模拟信号路径,提供灵活的信号路…...
nn.TransformerEncoderLayer详细解释,使用方法!!
nn.TransformerEncoderLayer nn.TransformerEncoderLayer 是 PyTorch 的 torch.nn 模块中提供的一个类,用于实现 Transformer 编码器的一个单独的层。Transformer 编码器层通常包括一个自注意力机制和一个前馈神经网络,中间可能还包含层归一化ÿ…...
巨控GRM561/562/563/564Q杀菌信息远程监控
摘要 通过程序编写、手机APP画面制作等运行系统,实现电脑及手机APP显示的历史曲线画面和数据图形化的实时性。 不仅流程效率提升90%以上,同时为杀菌生产提供有利的质量保障,还有效规避因触屏及内存卡的突发异常导致历史数据的丢失࿰…...
RT-DETR-20240507周更说明|更新Inner-IoU、Focal-IoU、Focaler-IoU等数十种IoU计算方式
RT-DETR改进专栏|包含主干、模块、注意力、损失函数等改进 专栏介绍 本专栏包含模块、卷积、检测头、损失等深度学习前沿改进,目前已有改进点70!每周更新。 20240507更新说明: ⭐⭐ 更新CIoU、DIoU、MDPIoU、GIoU、EIoU、SIoU、ShapeIou、PowerfulIoU、…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
