【每日刷题】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、…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
