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

郑州网站建设选智巢郑州专业网站推广优化公司

郑州网站建设选智巢,郑州专业网站推广优化公司,网站模板 seo,wordpress the_time()感觉二叉树每一题一个花样可能是因为栈和队列基础没打好,所以选择直接转入栈和队列。 想摆烂,煎熬----5/24 1.有效的括号 20. 有效的括号 - 力扣(LeetCode) 初版代码,有很多问题吧,正确的思路应该是把{ …

感觉二叉树每一题一个花样可能是因为栈和队列基础没打好,所以选择直接转入栈和队列。

想摆烂,煎熬----5/24

1.有效的括号

20. 有效的括号 - 力扣(LeetCode)

初版代码,有很多问题吧,正确的思路应该是把{ / [ / (压入栈,然后依次去匹配右边的括号

class Solution {

public:

    bool isValid(string s) {

        //妙的一点是网栈里加匹配的那半个,而不是原来的半个[感觉不能]

        int size = s.size();

        stack<char>st;

        int i = 0;

        while(i!=size){

            if(!st.empty()){

                char first = st.top();

                // st.pop();

                if(first == s[i]){

                    st.pop();

                    i++;

                }else{

                    i++;

                }

                continue;//

            }

            // st.push(s[i]);//说好的放另一半

            if(s[i]=='('){

                st.push(')');

            }else if(s[i]=='{'){

                st.push('}');

            }else if(s[i]=='['){

                st.push(']');

            }

            i++;//

           

        }//]]]

        if(st.empty()){

            return true;

        }else{

            return false;

        }

       

    }

};

混乱版本:【p.s.为了减少混乱其实可以for(),这样起码i++不会出错】

class Solution {
public:bool isValid(string s) {//妙的一点是往栈里加匹配的那半个,而不是原来的半个[感觉不能]int size = s.size();stack<char>st;int i = 0;while(i!=size){if(s[i]=='('){st.push(')');}else if(s[i]=='{'){st.push('}');}else if(s[i]=='['){st.push(']');}else{//右括号if(!st.empty()){char first = st.top();if(first == s[i]){st.pop();i++;//忘记了continue;}}return false;}i++;      }//]]]if(st.empty()){return true;}else{return false;}}
};

2.最小栈5/24

本题的目标就是把求栈的min值从O(n)优化为O(1)

155. 最小栈 - 力扣(LeetCode)

没思路

也是因为对C++类的不熟悉

class 类名 {

        private: // 私有成员,只能被类内的成员函数访问 数据类型 成员变量;

        public: // 公有成员,可以被类外部的代码访问

        返回类型 成员函数(); // 成员函数声明

}; // 注意这里有分号

两个栈,一个放当前min数,

用一个栈存储min,空间换时间 

class MinStack {//本题的目标就是用两个栈实现获得栈中元素min:O(n)变为O(1)
public:stack<int> st;stack<int>min;MinStack() {//常数时间内检索到最小元素的栈。// min.push(1e9);}void push(int val) {st.push(val);if(min.empty() ||val < min.top()){min.push(val);}else{min.push(min.top());}}void pop() {//st.pop();min.pop();}int top() {return st.top();        }int getMin() {return min.top();}
};/*** Your MinStack object will be instantiated and called as such:* MinStack* obj = new MinStack();* obj->push(val);* obj->pop();* int param_3 = obj->top();* int param_4 = obj->getMin();*/

 3.字符串解码

394. 字符串解码 - 力扣(LeetCode)

乱了,感觉一个左括号需要一个stack

很难区分[[ ]]和 [ ][ ]

但是其实就是满足栈的情况,

3[a2[c]]:3a先压入栈,然后2c压入栈,然后弹出

3[a]2[c]:3a先压入栈弹出,2c压入栈弹出

迷惑:如何处理当前重复的和之前压入栈的

#include <stack>
#include <string>
using namespace std;class Solution {
public:string decodeString(string s) {stack<int> numStack;    // 存储重复次数stack<string> strStack; // 存储外层字符串上下文int currentNum = 0;string currentStr = "";for (char c : s) {if (isdigit(c)) {currentNum = currentNum * 10 + (c - '0');} else if (c == '[') {// 压入当前状态并重置numStack.push(currentNum);strStack.push(currentStr);currentNum = 0;currentStr = "";} else if (c == ']') {// 弹栈并生成重复字符串int repeat = numStack.top();numStack.pop();string outerStr = strStack.top();strStack.pop();string temp;for (int i = 0; i < repeat; ++i) {temp += currentStr;}currentStr = outerStr + temp; // 栈顶+当前要重复的==总要重复的} else {currentStr += c;}}return currentStr; // 最终结果在此}
};

http://www.dtcms.com/a/493783.html

相关文章:

  • dz网站模板 首页显示内容百度在西安的公司叫什么
  • 基于jsp的网站开发的文献seo研究所
  • 个人网站可以备案几个怎么在网站添加关键词
  • wordpress设置阅读权限福州短视频seo网站
  • 大型网站建设部署方案wdcp备份网站
  • 网站建设合同书下载国外网站做调查
  • 淄博网站建设哪家好wordpress自定义进入后台地址
  • 做网站建设比较好的公司建设酒店网站ppt
  • 营销推广网站有哪些做二手的网站
  • 珠海企业网站建站小企业网站建设5000块贵吗
  • 什么网站可以请人做软件下载王烨个人简历
  • 企业网站在线留言让别人做一个网站需要多少钱
  • e时代速递搜索引擎网站建设自己做网站公司
  • 网站适配手机屏幕网站核验通知书
  • 自己做网站卖什么好网站建设与运营市场风险
  • 一站式网站建设服务商太平洋手机网参数对比
  • 专业做seo的网站建设好的网站
  • 如何实现网站开发手机验证码大同工业园区招聘信息
  • 如何做虚拟币交易网站橙色短信网站模板
  • 漳州正规网站建设价格宿迁房产网丫丫
  • 精品国内网站建设iis 7.0 搭建网站
  • wordpress 仿站交叉公司网站建设费用会计科目
  • 有什么做服装的网站吗wordpress the7 3.80
  • 网上购物最便宜的网站wordpress 如何修改网页标题
  • 浙江新中环建设有限公司 网站哪些作弊网站
  • 石家庄做标书的网站网站开发的基本流程
  • 站长工具星空传媒小程序开发外包服务
  • 广告联盟建设个人网站无障碍 网站 怎么做
  • 商城网站制作深圳网站制作5173网站源码
  • 快站如何做网站网上注册营业执照