【每日刷题】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、…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
rm视觉学习1-自瞄部分
首先先感谢中南大学的开源,提供了很全面的思路,减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接:https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架: 代码框架结构:readme有…...
python打卡第47天
昨天代码中注意力热图的部分顺移至今天 知识点回顾: 热力图 作业:对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图,展示模…...
Axure零基础跟我学:展开与收回
亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:Axure菜单展开与收回 课程视频:...
当下AI智能硬件方案浅谈
背景: 现在大模型出来以后,打破了常规的机械式的对话,人机对话变得更聪明一点。 对话用到的技术主要是实时音视频,简称为RTC。下游硬件厂商一般都不会去自己开发音视频技术,开发自己的大模型。商用方案多见为字节、百…...
