【算法通关指南:数据结构和算法篇 】栈相关算法题:1. 【模板】栈,2.有效的括号

【算法通关指南:数据结构和算法篇 】栈相关算法题:1. 【模板】栈,2.有效的括号
在这里插入图片描述
🔥小龙报:个人主页
🎬作者简介:C++研发,嵌入式,机器人方向学习者
❄️个人专栏:《算法通关指南 》
永远相信美好的事情即将发生
在这里插入图片描述

文章目录

前言

本专栏聚焦算法题实战,系统讲解算法模块:以《c++编程》,《数据结构和算法》《基础算法》《算法实战》 等几个板块以题带点,讲解思路与代码实现,帮助大家快速提升代码能力ps:本章节题目分两部分,比较基础笔者只附上代码供大家参考,其他的笔者会附上自己的思考和讲解,希望和大家一起努力见证自己的算法成长

一、【模板】栈

1.1题目

链接:栈【模板】

在这里插入图片描述

1.2算法原理

这道题其实就是模拟题目的过程有两种做法:使用C++提供的STL
或者自己模拟个栈
唯一要注意的是:数据范围(x的范围)

在这里插入图片描述


故x的范围要开unsigned long long

1.3代码

1.3.1 STL版本

#include<iostream>#include<stack> using namespace std;typedefunsignedlonglong ULL;constint N =1e6+10;intmain(){int t; cin >> t;while(t--){ stack<ULL> stk;int n; cin >> n;for(int i =1; i <= n; i++){ string s; cin >> s;if(s =="push"){ ULL x; cin >> x; stk.push(x);}elseif(s =="pop"){if(stk.empty()) cout <<"Empty"<< endl;else stk.pop();}elseif(s =="query"){if(stk.empty()) cout <<"Anguei!"<< endl;else cout << stk.top()<< endl;;}elseif(s =="size") cout << stk.size()<< endl;}}return0;}

1.3.2 模拟版本

#include<iostream> using namespace std;typedefunsignedlonglong ULL;constint N =1e6+10; ULL stk[N];intmain(){int t; cin >> t;while(t--){int size =0;//当前栈的元素个数int top =0;//栈顶位置int n; cin >> n;for(int i =1; i <= n; i++){ string s; cin >> s;if(s =="push"){ ULL x; cin >> x; stk[++top]= x;}elseif(s =="pop"){if(!size) cout <<"Empty"<< endl;else top--;}elseif(s =="query"){if(!size) cout <<"Anguei!"<< endl;else cout << stk[top]<< endl;;}elseif(s =="size") cout << size << endl;}}return0;}

二、有效的括号

2.1题目

链接:有效括号

在这里插入图片描述

2.2算法原理

用栈来模拟括号匹配的过程:
•如果是左括号,就进栈;
•如果是右括号,就看看栈里面有没有左括号与之匹配:
◦如果有,继续模拟;
◦如果没有,说明不是合法的括号序列直接返回就可以了

2.3代码

class Solution { public: bool isValid(string s){ stack <char> stk;for(int i =0;i < s.size();i++){if(s[i]=='('|| s[i]=='['|| s[i]=='{') stk.push(s[i]);else{//情况一 :遇到右半部分但栈为空if(stk.empty())return false;//情况二 :括号类型不匹配elseif(s[i]==')'&& stk.top()!='('|| s[i]==']'&& stk.top()!='['|| s[i]=='}'&& stk.top()!='{')return false; stk.pop();//情况三:匹配上 }}//如果遇到的右半部分都匹配判断栈yuansugeshuif(stk.size())//还有左括号未匹配return false;elsereturn true;}};

总结与每日励志

本文介绍了栈相关的两个算法题目:栈模板实现和有效的括号判定。在栈模板题目中,通过STL和数组模拟两种方式实现基本操作,并强调数据范围处理有效的括号题目则利用栈结构进行括号匹配判断,分析三种匹配情况。文章还附有代码实现,展现了栈在算法中的典型应用。全文简洁明了地呈现了栈的基本原理和实际应用场景。

在这里插入图片描述

Read more

AI革命先锋:DeepSeek与蓝耘通义万相2.1的无缝融合引领行业智能化变革

AI革命先锋:DeepSeek与蓝耘通义万相2.1的无缝融合引领行业智能化变革

云边有个稻草人-ZEEKLOG博客 目录 引言 一、什么是DeepSeek? 1.1 DeepSeek平台概述 1.2 DeepSeek的核心功能与技术 二、蓝耘通义万相2.1概述 2.1 蓝耘科技简介 2.2 蓝耘通义万相2.1的功能与优势 1. 全链条智能化解决方案 2. 强大的数据处理能力 3. 高效的模型训练与优化 4. 自动化推理与部署 5. 行业专用解决方案 三、蓝耘通义万相2.1与DeepSeek的对比分析 3.1 核心区别 3.2 结合使用的优势 四、蓝耘注册流程 五、DeepSeek与蓝耘通义万相2.1的集成应用 5.1 集成应用场景 1. 智能医疗诊断

By Ne0inhk
如何通过 3 个简单步骤在 Windows 上本地运行 DeepSeek

如何通过 3 个简单步骤在 Windows 上本地运行 DeepSeek

它是免费的——社区驱动的人工智能💪。         当 OpenAI 第一次推出定制 GPT 时,我就明白会有越来越多的人为人工智能做出贡献,并且迟早它会完全由社区驱动。         但从来没有想过它会如此接近😂让我们看看如何在 Windows 机器上完全免费使用第一个开源推理模型!  步骤 0:安装 Docker 桌面         我确信很多人已经安装了它,所以可以跳过,但如果没有 — — 这很简单,只需访问Docker 的官方网站,下载并运行安装 👍         如果您需要一些特定的设置,例如使用 WSL,那么有很多指导视频,请查看!我将继续下一步。 步骤 1:安装 CUDA 以获得 GPU 支持         如果您想使用 Nvidia 显卡运行 LLM,则必须安装 CUDA 驱动程序。(嗯……是的,它们需要大量的计算能力)         打开CUDA 下载页面,

By Ne0inhk
在 VSCode 中本地运行 DeepSeek,打造强大的私人 AI

在 VSCode 中本地运行 DeepSeek,打造强大的私人 AI

本文将分步向您展示如何在本地安装和运行 DeepSeek、使用 CodeGPT 对其进行配置以及开始利用 AI 来增强您的软件开发工作流程,所有这些都无需依赖基于云的服务。  步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT         要在本地运行 DeepSeek,我们首先需要安装Ollama,它允许我们在我们的机器上运行 LLM,以及CodeGPT,它是集成这些模型以提供编码辅助的 VSCode 扩展。 安装 Ollama Ollama 是一个轻量级平台,可以轻松运行本地 LLM。 下载Ollama 访问官方网站:https://ollama.com * 下载适合您的操作系统(Windows、macOS 或 Linux)的安装程序。 * 验证安装 安装后,打开终端并运行: ollama --version  如果 Ollama 安装正确,

By Ne0inhk
DeepSeek-R1是真码农福音?我们问了100位开发者……

DeepSeek-R1是真码农福音?我们问了100位开发者……

从GitHub Copilot到DeepSeek-R1,AI编程工具正在引发一场"效率革命",开发者们对这些工具的期待与质疑并存。据Gartner预测,到2028年,将有75%的企业软件工程师使用AI代码助手。 眼看着今年国产选手DeepSeek-R1凭借“深度思考”能力杀入战场,它究竟是真码农福音还是需要打补丁的"潜力股"? ZEEKLOG问卷调研了社区内来自全栈开发、算法工程师、数据工程师、前端、后端等多个技术方向的100位开发者(截止到2月25日),聚焦DeepSeek-R1的代码生成效果、编写效率、语法支持、IDE集成、复杂代码处理等多个维度,一探DeepSeek-R1的开发提效能力。 代码生成效果:有成效但仍需提升 * 代码匹配比例差强人意 在代码生成与实际需求的匹配方面,大部分开发者(58人)遇到生成代码与实际需求完全匹配无需修改的比例在40%-70%区间,12人遇到代码匹配比例在70%-100%这样较高的区间。 然而,有30人代码匹配比例低于40%。这说明DeepSeek-R1在代码生成方面有一定效果,但在部分复杂或特定场景下,仍有很大的提升空间。

By Ne0inhk