【每日刷题】Day35
【每日刷题】Day35
🥕个人主页:开敲🍉
🔥所属专栏:每日刷题🍍
🌼文章目录🌼
1. 844. 比较含退格的字符串 - 力扣(LeetCode)
2. 2487. 从链表中移除节点 - 力扣(LeetCode)
3. 225. 用队列实现栈 - 力扣(LeetCode)
1. 844. 比较含退格的字符串 - 力扣(LeetCode)
//0ms 100%思路:栈的基本使用。遍历字符串,遇到字母入栈,遇到'#'出栈,最后判断两个栈中元素是否相同。
typedef char 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 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("realloc:");
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];
}
bool backspaceCompare(char* s, char* t)
{
ST st1;
ST st2;
StackInit(&st1);
StackInit(&st2);
while (*s || *t)
{
if (*s && *s != '#')//遇到字母入栈
{
StackPush(&st1, *s);
}
else if (*s && *s == '#' && st1.top > 0)//否则出栈
{
StackPop(&st1);
}
if (*t && *t != '#')//同上
{
StackPush(&st2, *t);
}
else if (*t && *t == '#' && st2.top > 0)
{
StackPop(&st2);
}
if (*s)
{
s++;
}
if (*t)
{
t++;
}
}
int i = 0;
while (i < st1.top || i < st2.top)//比较两个栈中元素是否相同
{
if (i == st1.top || i == st2.top)
{
return false;
}
if (st1.arr[i] != st2.arr[i])
{
return false;
}
i++;
}
return true;
}
2. 2487. 从链表中移除节点 - 力扣(LeetCode)
//思路:栈。遍历链表,遇到更大的元素与之前入栈的元素比较,推出比当前元素小的栈中元素,将当前元素入栈。
typedef struct ListNode LN;
struct ListNode* removeNodes(struct ListNode* head)
{
LN* pmove = head->next;
int sta[100000] = {0};
sta[0] = head->val;
int count = 1;
while(pmove)
{
if(count==0)//如果栈中无元素,直接入栈
{
sta[count++] = pmove->val;
}
while(count>0&&pmove->val>sta[count-1])//循环遍历栈顶元素,推出比当前元素小的
{
count--;
}
sta[count++] = pmove->val;
pmove = pmove->next;
}
LN* Sentry = (LN*)malloc(sizeof(LN));//将栈中元素存入新链表返回
Sentry->next = NULL;
LN* newhead = Sentry;
for(int i = 0;i<count;i++)
{
LN* newnode = (LN*)malloc(sizeof(LN));
newnode->next = NULL;
newnode->val = sta[i];
newhead->next = newnode;
newhead = newhead->next;
}
return Sentry->next;
}
3. 225. 用队列实现栈 - 力扣(LeetCode)
//栈和队列的巩固理解题。本题只用于帮助加深巩固结构体与栈和队列的知识,不具有实际价值。
typedef int QDataType;
//队列节点
typedef struct listnode
{
QDataType val;
struct listnode* next;
}LN;
//队列头尾指针
typedef struct Queque
{
LN* phead;
LN* ptail;
int size;
}QE;
//队列初始化
void QueInit(QE* qe)
{
assert(qe);
qe->phead = NULL;
qe->ptail = NULL;
qe->size = 0;
}
//入列
void QuePush(QE* qe, QDataType x)
{
assert(qe);
LN* newnode = (LN*)malloc(sizeof(LN));
if (newnode == NULL)
{
perror("malloc:");
exit(-1);
}
newnode->next = NULL;
newnode->val = x;
if (qe->phead == NULL)
{
qe->phead = qe->ptail = newnode;
}
else
{
qe->ptail->next = newnode;
qe->ptail = qe->ptail->next;
}
qe->size++;
}
//出列
void QuePop(QE* qe)
{
assert(qe);
assert(qe->phead!=NULL);
assert(qe->size > 0);
if(qe->phead->next==NULL)
{
free(qe->phead);
qe->phead = qe->ptail = NULL;
}
else
{
LN* tmp = qe->phead->next;
free(qe->phead);
qe->phead = tmp;
}
qe->size--;
}
//获取列头元素
QDataType QueGetHead(QE* qe)
{
assert(qe);
assert(qe->phead != NULL);
return qe->phead->val;
}
//获取列尾元素
QDataType QueGetBack(QE* qe)
{
assert(qe);
assert(qe->ptail != NULL);
return qe->ptail->val;
}
//获取队列元素个数
int QueSize(QE* qe)
{
assert(qe);
return qe->size;
}
//判断队列是否为空
bool QueEmpty(QE* qe)
{
assert(qe);
return qe->size == 0;
}
//释放队列
void QueRelease(QE* qe)
{
assert(qe);
LN* del = qe->phead;
while (del)
{
LN* tmp = del->next;
free(del);
del = tmp;
}
qe->phead = qe->ptail = NULL;
qe->size = 0;
}
typedef struct
{
QE q1;
QE q2;
} MyStack;
//创建栈
MyStack* myStackCreate()
{
MyStack* Sta = (MyStack*)malloc(sizeof(MyStack));
QueInit(&(Sta->q1));
QueInit(&(Sta->q2));
return Sta;
}
//入数据
void myStackPush(MyStack* obj, int x)
{
if(QueEmpty(&(obj->q1)))
{
QuePush(&(obj->q1),x);
}
else
{
QuePush(&(obj->q1),x);
}
}
//出数据
int myStackPop(MyStack* obj)
{
QE* Empty = &(obj->q1);
QE* NotEmpty = &(obj->q2);
if(!QueEmpty(&(obj->q1)))
{
Empty = &(obj->q2);
NotEmpty = &(obj->q1);
}
while(QueSize(NotEmpty)>1)
{
QuePush(Empty,QueGetHead(NotEmpty));
QuePop(NotEmpty);
}
int top = QueGetHead(NotEmpty);
QuePop(NotEmpty);
return top;
}
//获取栈顶数据
int myStackTop(MyStack* obj)
{
if(!QueEmpty(&(obj->q1)))
{
return QueGetBack(&(obj->q1));
}
else
{
return QueGetBack(&(obj->q2));
}
}
//判断空
bool myStackEmpty(MyStack* obj)
{
return QueEmpty(&(obj->q1))&&QueEmpty(&(obj->q2));
}
//释放栈
void myStackFree(MyStack* obj)
{
QueRelease(&(obj->q1));
QueRelease(&(obj->q2));
free(obj);
obj = NULL;
}
相关文章:
【每日刷题】Day35
【每日刷题】Day35 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 844. 比较含退格的字符串 - 力扣(LeetCode) 2. 2487. 从链表中移除节点 - 力…...
Python数据清洗与可视化实践:国际旅游收入数据分析
文章目录 概要整体流程名词解释NumPyPandasMatplotlibre 技术细节数据清洗可视化 小结 概要 在本篇博客中,我们将通过一个实际的案例,演示如何使用Python进行数据清洗和可视化,以分析国际旅游收入数据。我们将使用Python中的Pandas库来进行数…...
前置知识储备
基本认知 什么是模式 在一定环境中解决一些问题的方案(通俗来说:特定环境中用固定的套路解决问题) 什么是设计模式 设计模式是一套反复被人使用,多数人知晓的,经过分类编目的代码设计经验的总结 设计模式最终的目…...
六月品牌互动营销方案的作用是什么
品牌需要借势营销,六月的六个节日热点,是企业商家不能错过的,如何运用合适的工具/方法借势也同样重要。 互动h5游戏/传单页面发挥不同效果,这份《六月品牌互动营销方案》看看有哪些内容吧~ 1、儿童节 宜:回忆欢乐营销…...
dummy_worker C++ 预占用部分比例cpu资源,人为创造cpu资源紧张
背景 有时候为了C测试程序在cpu资源紧张情况下是否正常,需要人为创造cpu资源紧张 编译方法 g -o dummp_worker dummp_worker.cpp -stdc11 -pthread 使用方法 ./dummp_worker 4 0.2 占用4个cpu核的20%比例的cpu资源 源码 // dummp_worker.cpp #include <c…...
电脑缺失opencl.dll怎么办,轻松解决opencl.dll的多种方法分享
当我们在操作电脑过程中遇到系统提示“由于找不到opencl.dll,无法继续执行代码”,这个错误会导致软件应用无法正常运行。OpenCL.dll作为一个与Open Computing Language(开放计算语言)相关的动态链接库文件,它在执行需要…...
el-select 点击按钮滚动到选择框顶部
主要代码是在visibleChange 在这个 popper 里面找到 .el-select-dropdown__list let popper ref.$refs.popper const ref this.$refs.select let dom popper.querySelector(.el-select-dropdown__list) setTimeout(() > { dom.scrollIntoView() }, 800) <templat…...
vue 钩子函数updated什么时候触发
触发时机 updated是Vue生命周期钩子函数之一,在组件的数据变化导致虚拟DOM重新渲染并应用到实际DOM之后触发。具体来说,updated会在以下几种情况下被触发: 初始渲染完成后:当组件首次渲染完成并将虚拟DOM渲染到实际DOM之后&#…...
消息队列使用常见问题
一、消息丢失的时机? 生产端消息丢失 问题:因为网络异常导致消息发送失败,此时可能会产生消息丢失的情况,重试后可能产生消息重复生产的情况。 解决:超时重试,并在消费端保证幂等性。 消息队列中消息丢失 …...
常用SQL命令
应用经常需要处理用户的数据,并将用户的数据保存到指定位置,数据库是常用的数据存储工具,数据库是结构化信息或数据的有序集合,几乎所有的关系数据库都使用 SQL 编程语言来查询、操作和定义数据,进行数据访问控制&…...
【neteq】tgcall的调用、neteq的创建及接收侧ReceiveStatisticsImpl统计
G:\CDN\P2P-DEV\Libraries\tg_owt\src\call\call.cc基本是按照原生webrtc的来的:G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\group\GroupInstanceCustomImpl.cpptg对neteq的使用 worker 线程创建call Call的config需要neteqfactory Call::CreateAu…...
使用Python读取las点云,写入las点云,无损坐标精度
目录 1 为什么要写这个博文2 提出一些关键问题3 给出全部代码安装依赖源码(laspy v2.x) 1 为什么要写这个博文 搜索使用python读写las点云数据,可以找到很多结果。但是! 有些只是简单的demo,且没有发现/说明可能遇到的…...
python开发二
python开发二 requests请求模块 requests 是一个常用的 Python 第三方库,用于发送 HTTP 请求。它提供了简洁且易于使用的接口,使得与 Web 服务进行交互变得非常方便。 发送 GET 请求并获取响应 import requestsresponse requests.get("https:/…...
部署JVS服务出现上传文件不可用,问题原因排查。
事情的起因是这样的,部门经理让我部署一下JVS资源共享框架,项目的地址是在这里 项目资源地址 各位小伙伴们做好了,我要开始发车了,全新的“裂开之旅” 简单展示一下如何部署JVS文档 直达链接 撕裂要开始了 本来服务启动的好好…...
机器视觉检测为什么是工业生产的刚需?
机器视觉检测在工业生产中被视为刚需,主要是因为它具备以下几个关键优势: 提高精度与效率:机器视觉系统可以进行高速、高精度的检测。这对于保证产品质量、减少废品非常关键。例如,在生产线上,机器视觉可以迅速识别产品…...
Adobe系列软件安装
双击解压 先运行Creative_Cloud_Set_Up.exe。 完毕后,运行AdobeGenP.exe 先Path,选路径,如 C:\Program Files\Adobe 后Search 最后Patch。 关闭软件,修图!...
【FX110】2024外汇市场中交易量最大的货币对是哪个?
作为最大、最流动的金融市场之一,外汇市场每天的交易量高达几万亿美元,涉及到数百种货币。不同货币对的交易活跃程度并不一样,交易者需要根据货币对各自的特点去进行交易。 全年外汇市场中涉及美元的外汇交易超过50%! 实际上&…...
leetcode尊享面试100题(549二叉树最长连续序列||,python)
题目不长,就是分析时间太久了。 思路使用dfs深度遍历,先想好这个函数返回什么,题目给出路径可以是子-父-子的路径,那么1-2-3可以,3-2-1也可以,那么考虑dfs返回两个值,对于当前节点node来说&…...
C#面试题: 寻找中间值
给定一个数组,在区间内从左到右查找中间值,每次查找最小值与最大值区间内的中间值,且这个区间元素数量不小于3。 例如 1.给定数组float[] data { 1, 2.3f, 4, 5.75f, 8.125f, 10.5f, 13, 15, 20 } 输出:10.5、5.75、4、2.3、8…...
987: 输出用先序遍历创建的二叉树是否为完全二叉树的判定结果
解法: 一棵二叉树是完全二叉树的条件是: 对于任意一个结点,如果它有右子树而没有左子树,则这棵树不是完全二叉树。 如果一个结点有左子树但是没有右子树,则这个结点之后的所有结点都必须是叶子结点。 如果满足以上条…...
13:HAL---SPI
目录 一:SPL通信 1:简历 2:硬件电路 3:移动数据图 4:SPI时序基本单元 A : 开/ 终条件 B:SPI时序基本单元 A:模式0 B:模式1 C:模式2 D:模式3 C:SPl时序 A:发送指令 B: 指定地址写 C:指定地址读 5:NSS(CS) 6:时钟 二: W25Q64 1:简历 2…...
微服务---gateway网关
目录 gateway作用 gateway使用 添加依赖 配置yml文件 自定义过滤器 nacos上的gateway的配置文件 我们现在知道了通过nacos注册服务,通过feign实现服务间接口的调用,那对于不同权限的用户访问同一个接口,我们怎么知道他是否具有访问的权…...
HTML4(二)
文章目录 1 开发者文档2 基本标签2.1 排版标签2.2 语义化标签2.3 行内元素与块级元素2.4 文本标签2.5 常用标签补充 3 图片标签4 超链接标签4.1 跳转页面4.2 跳转文件4.3 跳转锚点4.4 唤起指定应用 5 列表5.1 有序列表5.2 无序列表5.3 自定义列表 6 表格6.1 基本结构6.2 表格标…...
SpringBoot 扩展篇:ConfigFileApplicationListener源码解析
SpringBoot 扩展篇:ConfigFileApplicationListener源码解析 1.概述2. ConfigFileApplicationListener定义3. ConfigFileApplicationListener回调链路3.1 SpringApplication#run3.2 SpringApplication#prepareEnvironment3.3 配置environment 4. 环境准备事件 Config…...
蓝桥杯省三爆改省二,省一到底做错了什么?
到底怎么个事 这届蓝桥杯选的软件测试赛道,都说选择大于努力,软件测试一不卷二不难。省赛结束,自己就感觉稳啦,全部都稳啦。没想到一出结果,省三,g了。说落差,是真的有一点,就感觉和自己预期的…...
Unity EventSystem入门
概述 相信在学习Unity中,一定有被UI事件困扰的时候把,当添加UICanvas的时候,Unity会为我们自动添加EventSystem,这个是为什么呢,Unity的UI事件是如何处理的呢,在使用各个UI组件的时候,一定有不…...
第4章 Vim编辑器与Shell命令脚本
第4章 Vim编辑器与Shell命令脚本 1. Vim文本编辑器2. 编写Shell脚本2.2 接收用户的参数2.3 判断用户的参数 3. 流程控制语句3.1 if条件测试语句3.2 for条件循环语句3.3 while条件循环语句3.4 case条件测试语句 4. 计划任务服务程序复习题 1. Vim文本编辑器 Vim编辑器中设置了三…...
javaWeb快速部署到tomcat阿里云服务器
目录 准备 关闭防火墙 配置阿里云安全组 点击控制台 点击导航栏按钮 点击云服务器ECS 点击安全组 点击管理规则 点击手动添加 设置完成 配置web服务 使用yum安装heepd服务 启动httpd服务 查看信息 部署java通过Maven打包好的war包项目 Maven打包项目 上传项目 …...
[MQTT]Mosquitto的內網連接(intranet)和使用者/密碼權限設置
[MQTT | Raspberry Pi]Publish and Subscribe with RSSI Data of Esp32 on Intranet 延續[MQTT]Mosquitto的簡介、安裝與連接測試文章,接著將繼續測試在內網的兩台機器是否也可以完成發佈和訂閱作業。 同一網段的兩台電腦測試: 假設兩台電腦的配置如下: A電腦為發…...
某盾BLACKBOX逆向关键点
需要准备的东西: 1、原JS码 2、AST解混淆码 3、token(来源于JSON) 一、原JS码很好获取,每次页面刷新,混淆的代码都会变,这是正常,以下为部分代码 while (Qooo0) {switch (Qooo0) {case 110 14 - 55: {function O0…...
网站排名做不上去吗/百度云盘下载
一、防sql注入办法 在apache commons-lang(2.3以上版本)中为我们提供了一个方便做转义的工具类,主要是为了防止sql注入,xss注入攻击的功能。总共提供了以下几个方法: 1.escapeSql 提供sql转移功能,防止sql注入攻击,例如…...
网站建设维护php/查收录网站
目前/ boot partition /文件夹没有足够的空间,无法执行软件更新.问题:我应该如何正确释放该目录中的一些空间?这是列表:rootmindaugas-ubuntu-14:/boot# ls -latotal 156607drwxr-xr-x 4 root root 3072 Kov 12 09:37 .drwxr-xr-x 24 root ro…...
目字形布局结构的网站/个人购买链接
拿到了自己阿里云服务器的日志,对其需要进行处理。class Read_Rizhi:def __init__(self,filename):self.filenamefilenamedef open_file(self):try:f open(self.filename, r, encodingutf-8)resuly {code: 1, result: f}except Exception as e:resuly {code: 0, …...
手机网站建设比较好的公司/临沂seo公司
最近在看JVM虚拟机,想要搞懂虚拟机的内部运行机制,指令码的分析是必不可少的!来看一个简单的测试小程序,看看里面的运行机制!这里就需要借助javap命令去查看了! 第一步,创建一个简单的测试程序…...
彩票网站开发注意事情/刚刚发生 北京严重发生
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字…...