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

代码随想录 打卡第十天

232 用栈实现队列

class MyQueue { public: stack<int> stIn; stack<int> stOut; MyQueue() { } void push(int x) { stIn.push(x); } int pop() { if(stOut.empty()){ while(!stIn.empty()){ stOut.push(stIn.top()); stIn.pop(); } } int result = stOut.top(); stOut.pop(); return result; } int peek() { if(stOut.empty()){ while(!stIn.empty()){ stOut.push(stIn.top()); stIn.pop(); } } int result = stOut.top(); return result; } bool empty() { if(stIn.empty() && stOut.empty()){ return true; }else{ return false; } } }; /** * Your MyQueue object will be instantiated and called as such: * MyQueue* obj = new MyQueue(); * obj->push(x); * int param_2 = obj->pop(); * int param_3 = obj->peek(); * bool param_4 = obj->empty(); */

225 用队列实现栈

class MyStack { public: queue<int> q; MyStack() { } void push(int x) { q.push(x); } int pop() { for(int i = 1;i < q.size();i++){ q.push(q.front()); q.pop(); } int result = q.front(); q.pop(); return result; } int top() { int result = q.back(); return result; } bool empty() { if(q.empty()){ return true; }else{ return false; } } }; /** * Your MyStack object will be instantiated and called as such: * MyStack* obj = new MyStack(); * obj->push(x); * int param_2 = obj->pop(); * int param_3 = obj->top(); * bool param_4 = obj->empty(); */

20 有效括号

class Solution { public: stack<char> stack; bool isValid(string s) { for(int i = 0; i < s.size();i++){ if(s[i] == '(' || s[i] == '[' || s[i] == '{'){ stack.push(s[i]); } if(s[i] == ')'){ if(!stack.empty() && stack.top() == '('){ stack.pop(); }else{ return false; } } if(s[i] == ']'){ if(!stack.empty() && stack.top() == '['){ stack.pop(); }else{ return false; } } if(s[i] == '}'){ if(!stack.empty() && stack.top() == '{'){ stack.pop(); }else{ return false; } } } if(stack.empty()){ return true; }else{ return false; } } };
class Solution { public: bool isValid(string s) { if (s.size() % 2 != 0) return false; // 如果s的⻓度为奇数,⼀定不符合要求 stack<char> st; for (int i = 0; i < s.size(); i++) { if (s[i] == '(') st.push(')'); else if (s[i] == '{') st.push('}'); else if (s[i] == '[') st.push(']'); else if (st.empty() || st.top() != s[i]) return false; else st.pop(); // st.top() 与 s[i]相等,栈弹出元素 } return st.empty(); } };

1047 删除字符串中的所有相邻重复项

class Solution { public: stack<char> q; string removeDuplicates(string s) { for(int i = 0;i < s.size();i++){ if(!q.empty()){ if(s[i] == q.top()){ q.pop(); }else{ q.push(s[i]); } }else{ q.push(s[i]); } } string result; result.resize(q.size()); for(int i = q.size() - 1;i >= 0;i--){ result[i] = q.top(); q.pop(); } return result; } };
http://www.jsqmd.com/news/699726/

相关文章:

  • CL1830绿色模式PWM反激(SSR)控制器
  • 如何评价最新发布的 GPT-Image-2,有哪些亮点值得关注?
  • 终极DOL中文美化整合指南:如何打造专属视觉盛宴
  • Qwerty Learner终极指南:如何通过打字练习快速提升英语肌肉记忆
  • 5大核心能力解析:UEViewer如何成为虚幻引擎资源处理的首选工具
  • 抖音无水印批量下载终极指南:如何高效保存喜欢的视频内容
  • 多线程下载引擎架构解析:AB Download Manager的技术实现路径
  • 3步开启Windows系统定制之旅:Windhawk完全指南
  • 如何用dedao-dl永久保存得到课程?告别知识过期的终极指南
  • 想要再一次被你拯救
  • flask: flask db init报错:ModuleNotFoundError: No module named _ctypes
  • BMS测试效率翻倍:基于TSMaster和DBC文件,快速配置你的ADBMS/LTC系列AFE模拟器
  • 深入BPE算法:通过tiktoken的_educational模块理解GPT分词器是如何工作的
  • 达梦数据库DM8性能优化实战:从慢SQL到系统级调优
  • E3-PRUNER:大语言模型层剪枝技术的革命性突破
  • ComfyUI ControlNet Aux预处理器使用指南:从入门到精通的实用技巧
  • GPU加速多尺度气泡流模拟:原理与工程实践
  • 告别RNN和CTC:用SVTR这个纯视觉Transformer模型,搞定中英文OCR又快又准
  • C语言中的#include指令
  • 【花雕动手做】让AI落地物理世界:ESP32-S3如何打通“感知-决策-执行”最后一公里?
  • Linux容器化运维:从Docker到Kubernetes的进阶之路
  • macOS下XGBoost安装指南与性能优化
  • 仅剩3个编译器支持完整C++26合约语义!现在掌握配置方法,抢占下一代安全关键系统开发先机
  • [20260424]验证11g下是否可以修改后台进程名的显示.txt
  • Chrome零日漏洞爆发式增长:AI如何重构浏览器安全的攻防格局
  • 别再调参到崩溃了!手把手教你用STM32调试麦克纳姆轮小车的PID速度环
  • 2026年十大Web安全威胁与防御策略——OWASP Top 10实战解读
  • 2026 AI搜索优化必看:这5款工具亲测有效
  • 从IOU到CIOU:目标检测边界框回归损失函数的演进与实战选择
  • [20260423]再论参数use_large_pages.txt