当前位置: 首页 > news >正文

leetcode hot100刷题日记——18.搜索插入位置

我忏悔,昨天偷懒了就做了一道题,今天把昨天没做的补上呜呜呜
在这里插入图片描述
自己的啰嗦版本解答:

class Solution {
public:bool isValid(string s) {stack<char> st;if(s.length()==1){return false;}for(char ss:s){//左边括号就放进栈if(ss=='('||ss=='{'||ss=='['){st.push(ss);}else{//遍历到右边括号的时候,先判断栈是不是空的。栈非空时,弹出栈顶元素,如果括号匹配的话,弹出来的左括号一定和这个右括号匹配。不匹配就直接return false。//如果栈是空的,那就说明前面没有左括号,那就把右括号先放进栈里,反正也弹不出来。if(ss==')'){if(!st.empty()){char topp=st.top();st.pop();if(topp!='('){return false;}}else{st.push(ss);}}else if(ss=='}'){if(!st.empty()){char topp=st.top();st.pop();if(topp!='{'){return false;}}else{st.push(ss);}}else{if(!st.empty()){char topp=st.top();st.pop();if(topp!='['){return false;}}else{st.push(ss);}}}}//最后看栈是不是空的,是空的就说明都匹配上了。不是空的那就是之前还有没匹配的括号,return false。if(st.empty())return true;elsereturn false;}
};

时间复杂度:O(N)
空间复杂度:O(N)

下面学习一下大大的写法。
灵茶山艾府大大写法详解见link

首先括号两两一对,那么s的长度必须是偶数,如果是奇数,那就直接return false。

创建一个哈希表,保存每个右括号对应的左括号,这样可以直接判断栈顶的左括号是否与右括号为同一类型,省去if-else判断

class Solution{unordered_map<char, char> mp = {{')', '('}, {']', '['}, {'}', '{'}};public:bool isValid(string s){if(s.length()%2!=0){return false;}stack<char>st;for(char c:s){//判断c是不是mp的key//也就是判断c是不是右括号if(!mp.contains(c)){//如果不是右括号,那就是左括号,放进栈里st.push(c);}else{if(st.empty()||st.top()!=mp[c]){//如果是右括号的话//首先判断栈是不是空,如果是空的话,说明没有匹配的左括号,return false//接着还要想到如果栈不是空的,我们要判断栈顶的括号是不是匹配的return false;}//前面已经判断过了,所以栈一定是非空的,而且栈顶是对应括号,所以弹出栈顶元素st.pop();}}return st.empty();}
};
http://www.dtcms.com/a/216973.html

相关文章:

  • PCB设计自检表
  • SAAS架构设计2-流程图-注册流程图
  • 【premiere教程】【01】【跑个流程】
  • 【新品发布】嵌入式人工智能实验箱EDU-AIoT ELF 2正式发布
  • 学习python day9
  • 为什么共现矩阵是高维稀疏的
  • 攻防世界-safer-than-rot13
  • 各个链接集合
  • Jenkins实践(7):Publish over SSH功能
  • 自然语言处理入门及文本预处理
  • STM32的HAL编码流程总结(上部)
  • LY/T 2714-2016 木塑门套线检测
  • 百胜咨询公司:企业EcoVadis认证的专业导航者
  • C-字符串函数
  • 第9章:网络协议栈与 IoT 通信
  • 低空经济管理系统设计方案
  • 大模型评测体系建设方向
  • 第二届Parloo 主线题目分析与思考
  • python打卡day38
  • 物流项目第七期(路线规划之Neo4j的应用)
  • ImageMagick 是默认使用 CPU 来处理图像,也具备利用 GPU 加速的潜力
  • 从“学术杠精”到“学术创新”
  • 使用 mysqldump 获取 MySQL 表的完整创建 DDL
  • 如何在WordPress网站中添加相册/画廊
  • PyTorch 2.1新特性:TorchDynamo如何实现30%训练加速(原理+自定义编译器开发)
  • 车载通信网络 --- OSI模型:网络层
  • 国芯思辰| 同步降压转换器CN2020应用于智能电视,替换LMR33620
  • 数据结构期末模拟试卷
  • 2025年上半年第2批信息系统项目管理师论文真题解析与范文
  • pgsql 查看每张表大小