【每日刷题】Day38

【每日刷题】Day38

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 2696. 删除子串后的字符串最小长度 - 力扣(LeetCode)

2. LCR 123. 图书整理 I - 力扣(LeetCode)

3. 面试题 02.06. 回文链表 - 力扣(LeetCode)

1. 2696. 删除子串后的字符串最小长度 - 力扣(LeetCode)

//思路:栈。遍历字符串,如果遇到'B'且栈顶元素为'A',出栈;如果遇到'D'且栈顶元素为'C',出栈;其余情况入栈。

int minLength(char * s)

{

    int count = 1;

    char* Stack = (char*)malloc(sizeof(char)*strlen(s)+1);

    Stack[0] = s[0];

    int i = 1;

    while(i<strlen(s))

    {

        if((count&&s[i]=='B'&&Stack[count-1]=='A')||(count&&s[i]=='D'&&Stack[count-1]=='C'))//出栈情况

        {

            count--;

        }

        else//入栈

        {

            Stack[count++] = s[i];

        }

        i++;

    }

    Stack[count] = '\0';

    return strlen(Stack);

}

2. LCR 123. 图书整理 I - 力扣(LeetCode)

//思路:栈。利用栈将数组逆置。

int* reverseBookList(struct ListNode* head, int* returnSize)

{

    int* Stack = (int*)malloc(sizeof(int)*10000);

    int count = 0;

    int* ans = (int*)malloc(sizeof(int)*10000);

    struct ListNode* pmove = head;

    while(pmove)

    {

        Stack[count++] = pmove->val;

        pmove = pmove->next;

    }

    int size = 0;

    while(--count>=0)

    {

        ans[size++] = Stack[count];

    }

    *returnSize = size;

    return ans;

}

3. 面试题 02.06. 回文链表 - 力扣(LeetCode)

//思路:将链表节点入栈,对栈进行入栈出栈操作,最后判断栈是否为空,为空则说明链表为回文结构,否则不是。注意:这里需要考虑链表长度为奇数和偶数的情况

bool isPalindrome(struct ListNode* head)

{

    if(!head)

    {

        return true;

    }

    if(!head->next)

    {

        return true;

    }

    int count = 0;

    int flag = 0;

    struct ListNode* pmove = head;

    while(pmove)//计算链表长度

    {

        count++;

        pmove = pmove->next;

    }

    pmove = head->next;

    int* arr = (int*)malloc(sizeof(int)*count);

    arr[0] = head->val;

    int num = 1;

    if(count%2)//如果链表长度为奇数,则当遍历到链表中间节点时不能够进行入栈出栈操作,直接跳过

    {

        while(pmove)

        {

            flag++;

            if(flag==count/2)//遍历到链表中间节点,不进行操作,直接跳过

            {

                pmove = pmove->next;

                continue;

            }

            if(num&&pmove->val==arr[num-1])//如果当前节点值与栈顶元素相同,则出栈

            {

                num--;

            }

            else//否则,入栈

            {

                arr[num++] = pmove->val;

            }

            pmove = pmove->next;

        }

    }

    else//偶数情况

    {

        while(pmove)//与奇数类似,省去了遍历到链表中间节点的情况

        {

            if(num&&pmove->val==arr[num-1])

            {

                num--;

            }

            else

            {

                arr[num++] = pmove->val;

            }

            pmove = pmove->next;

        }

    }

    return num==0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691793.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

避坑指南!RK3588香橙派yolov5生成RKNN模型!

地址1&#xff0c;转换模型 地址2&#xff0c;转换模型 地址3&#xff0c;解决ppa 下载k2 本文目录 一、将.pt模型转为onnx模型文件。&#xff08;Windows&#xff09;二、将.onnx模型转为.rknn模型文件。&#xff08;Linux&#xff09;三、将.rknn模型部署到开发板RK3588中…

Ps 滤镜:粉笔和炭笔

Ps菜单&#xff1a;滤镜/滤镜库/素描/粉笔和炭笔 Filter Gallery/Sketch/Chalk & Charcoal 粉笔和炭笔 Chalk & Charcoal滤镜可以模拟传统的粉笔和炭笔画风格&#xff0c;通过特定的纹理和线条重绘图像的高光、中间色调和阴影区域。此滤镜非常适合于为数字图像添加手绘…

前端工程化,前端监控,工作流,部署,性能

开发规范 创建项目的时候&#xff0c;配置下 ESlint&#xff0c;stylelint&#xff0c; prettier&#xff0c; commitlint 等; ESLint 主要功能&#xff1a; ESLint 是一个静态代码检查工具&#xff0c;用于在 JavaScript 代码中识别和报告模式。它的目标是提供一个插件化的 …

PopClip for Mac 激活版:让文本处理更高效

还在为繁琐的文本处理而烦恼吗&#xff1f;PopClip for Mac来帮您解决&#xff01;这款神器般的文本处理工具&#xff0c;能让您轻松应对各种文本处理任务。无论是写作、编程还是日常办公&#xff0c;PopClip for Mac都能助您一臂之力&#xff0c;让您的文本处理更高效、更便捷…

数据分析思维——数据埋点笔记,以电商为例

数据埋点 数据分析前提是有数据&#xff0c;数据从哪里来&#xff0c;要选择采集哪些数据都需要考虑。如某些app上的商品推荐&#xff0c;是基于哪些信息来预判的呢&#xff1f;因此作为数据分析师有必要系统的了解用户行为到用户数据的整个过程 何为数据埋点 每当用户在客户端…

Git系列:git diff使用技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【基于element ui的color选择器】基于element ui的color选择器

技术版本如下&#xff1a; vue 2.6.14 less 3.13.1 element-ui 2.15.6 less-loader 5.0.0需求&#xff1a; 支持RGB、HEX编码、支持吸管吸取颜色、颜色选择器、颜色模板、透明度、色板、线性渐变颜色 效果图&#xff1a; 1.引入选择器的color-all文件 <template><…

Ps 滤镜:便条纸

Ps菜单&#xff1a;滤镜/滤镜库/素描/便条纸 Filter Gallery/Sketch/Note Paper 便条纸 Note Paper滤镜用于模拟手工纸张的质感和视觉效果。此滤镜将图像简化并添加浮雕和颗粒效果&#xff0c;使图像看起来像是在手工制作的纸上绘制或打印。 “便条纸”滤镜通过结合使用浮雕效果…

ZFS 文件系统结构及 ZFS 文件系统数据恢复

ZFS是一种革命性的文件系统&#xff0c;它遵循完全不同的文件系统管理方法&#xff0c;同时提供目前其他文件系统无法提供的新功能和优势。ZFS 可靠、可扩展且易于管理。 它放弃了卷的概念&#xff0c;从而摆脱了传统的文件系统原则。另外&#xff0c;ZFS 提供更复杂的存储池&…

2024车载测试还有发展吗?

2024年已过接近1/4了,你是不是还在围观车载测试行业的发展? 现在入车载测试还来得及吗? 如何高效学习车载测试呢? 首先我们看一下车载测试行情发展,通过某大平台,我们后去数据如下: 这样的数据可以预估一下未来车载测试还是会持续发展. 随着科技的发展和汽车行业的不断创新,…

LLama3大模型本地部署 仅需6步完成对话模型本地安装部署。附赠ui配置、第三方微调模型、中文模型下载地址

本篇分为三部分 一&#xff1a;6步完成llama3大模型本地部署 二&#xff1a;8步完成llama3可视化对话界面安装 三&#xff1a;微调模型、中文模型下载资源分享 一、LLama3 大模型本地部署安装 首先去mata官网下载ollama客户端 Ollama 选择合适的操作系统平台后点击dowload按钮…

【Java难点】多线程-高级

悲观锁和乐观锁 悲观锁 synchronized关键字和Lock的实现类都是悲观锁。 它很悲观&#xff0c;认为自己在使用数据的时候一定有别的线程来修改数据&#xff0c;因此在获取数据的时候会一不做二不休的先加锁&#xff0c;确保数据不会被别的线程修改。 适合写操作多的场景&…