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

男孩做网站网络公司优化关键词

男孩做网站,网络公司优化关键词,wordpress 截断插件,WordPress自定义类排序题目 给你一个只包含 ‘(’ 和 ‘)’ 的字符串 s s s,找出最长有效(格式正确且连续)括号子串的长度。 方法 动态规划 d p [ i ] dp[i] dp[i] 表示以 s [ i ] s[i] s[i] 结尾的最长有效括号的长度如果 s [ i ] s[i] s[i] 为左括号&#…

题目

给你一个只包含 ‘(’ 和 ‘)’ 的字符串 s s s,找出最长有效(格式正确且连续)括号子串的长度。

方法

动态规划

  • d p [ i ] dp[i] dp[i] 表示以 s [ i ] s[i] s[i] 结尾的最长有效括号的长度
  • 如果 s [ i ] s[i] s[i] 为左括号,则 d p [ i ] = 0 dp[i] = 0 dp[i]=0
  • 如果 s [ i ] s[i] s[i] 为右括号,
    • s [ i − 1 ] s[i-1] s[i1] 为左括号, 则 d p [ i ] = d p [ i − 2 ] + 2 dp[i] = dp[i-2] + 2 dp[i]=dp[i2]+2
    • s [ i − 1 ] s[i-1] s[i1] 为右括号,
      • s [ i − 1 − d p [ i − 1 ] ] s[i-1-dp[i-1]] s[i1dp[i1]] 为左括号,则 d p [ i ] = d p [ i − 1 ] + d p [ i − 2 − d p [ i − 1 ] ] + 2 dp[i] = dp[i-1] + dp[i-2-dp[i-1]] + 2 dp[i]=dp[i1]+dp[i2dp[i1]]+2
      • s [ i − 1 − d p [ i − 1 ] ] s[i-1-dp[i-1]] s[i1dp[i1]] 为右括号,则 d p [ i ] = 0 dp[i] = 0 dp[i]=0

  • 始终保持栈底元素为最后一个没有被匹配的右括号的下标,这样的做法主要是考虑了边界条件的处理,栈里其他元素维护左括号的下标:

    • 对于遇到的每个‘(’ ,我们将它的下标放入栈中
    • 对于遇到的每个‘)’,我们先弹出栈顶元素表示匹配了当前右括号:
      • 如果栈为空,说明当前的右括号为没有被匹配的右括号,我们将其下标放入栈中来更新我们之前提到最后一个没有被匹配的右括号的下标
      • 如果栈不为空,当前右括号的下标减去栈顶元素即为以该右括号为结尾的最长有效括号的长度
        我们从前往后遍历字符串并更新答案即可。
  • 需要注意的是,如果一开始栈为空,第一个字符为左括号的时候我们会将其放入栈中,这样就不满足提及的最后一个没有被匹配的右括号的下标,为了保持统一,我们在一开始的时候往栈中放入一个值为 − 1 -1 1 的元素

两次遍历

  • 从左往右遍历字符串:
    • 当遇到左括号时, l e f t left left 加一;当遇到右括号时, r i g h t right right 加一;
    • l e f t = = r i g h t left == right left==right,更新一次最长有效括号的长度
    • l e f t < r i g h t left < right left<right,将两个变量清零;
  • 从右往左遍历字符串:
    • 当遇到左括号时, l e f t left left 加一;当遇到右括号时, r i g h t right right 加一;
    • l e f t = = r i g h t left == right left==right,更新一次最长有效括号的长度
    • l e f t > r i g h t left > right left>right,将两个变量清零;

代码

class Solution {
public:int longestValidParentheses(string s) {// int n = s.size();// stack<int> stk;// vector<vector<int>> ind_list;// stk.push(-1);// int ret = 0;// for(int i = 0; i < n; i++){//     if(s[i] == '('){//         stk.push(i);//     }//     else{//         if(stk.top() != -1){//             if(ind_list.size()>0 && stk.top()-ind_list[ind_list.size()-1][1] < 0){//                 ind_list[ind_list.size()-1][0] = stk.top();//                 ind_list[ind_list.size()-1][1] = i;//             }//             else//                 ind_list.push_back({stk.top(), i});//             if(ind_list.size()>=2){//                 int r1 = ind_list[ind_list.size()-2][1];//                 int l2 = ind_list[ind_list.size()-1][0];//                 int r2 = ind_list[ind_list.size()-1][1];//                 if(l2-r1 == 1){//                     ind_list[ind_list.size()-2][1] = r2;//                     ind_list.pop_back();//                 }//             }//             stk.pop();//         }//     }// }// for(int i = 0; i < ind_list.size(); i++){//     ret = max(ret, ind_list[i][1]-ind_list[i][0]+1);// }// return ret;// 1 dp// int n = s.size();// vector<int> dp(n, 0);// int ret = 0;// for(int i = 1; i < n; i++){//     if(s[i] == ')' && s[i-1] == '('){//         if(i >= 2)//             dp[i] = dp[i-2] + 2;//         else//             dp[i] = 2;//     }//     else if(s[i] == ')' && s[i-1] == ')'){//         if(i-1-dp[i-1] >= 0 && s[i-1-dp[i-1]] == '('){//             if(i-2-dp[i-1] >= 0)//                 dp[i] = dp[i-1] + 2 + dp[i-2-dp[i-1]];//             else    //                 dp[i] = dp[i-1] + 2;//         }//     }//     ret = max(ret, dp[i]);// }// return ret;// 2 stackint n = s.size();stack<int> stk;stk.push(-1);int ret = 0;for(int i = 0; i < n; i++){if(s[i] == '('){stk.push(i);}else{stk.pop();if(stk.empty()){stk.push(i);}else{ret = max(ret, i-stk.top());}}}return ret;// 3// int n = s.size();// int left = 0, right = 0;// int ret = 0;// for(int i = 0; i < n; i++){//     if(s[i] == '('){//         left++;//     }//     else{//         right++;//     }//     if(left == right){//         ret = max(ret, 2*left);//     }//     else if(right > left){//         right = 0;//         left = 0;//     }// }// left = 0; right = 0;// for(int i = n-1; i >= 0; i--){//     if(s[i] == '('){//         left++;//     }//     else{//         right++;//     }//     if(left == right){//         ret = max(ret, 2*left);//     }//     else if(right < left){//         right = 0;//         left = 0;//     }// }// return ret;}
};

文章转载自:
http://brassiness.rzgp.cn
http://landslip.rzgp.cn
http://chloe.rzgp.cn
http://eyelash.rzgp.cn
http://fumbler.rzgp.cn
http://canzone.rzgp.cn
http://speak.rzgp.cn
http://placeseeker.rzgp.cn
http://theatergoing.rzgp.cn
http://farcical.rzgp.cn
http://areologist.rzgp.cn
http://blaxploitation.rzgp.cn
http://orbivirus.rzgp.cn
http://houseless.rzgp.cn
http://chirpy.rzgp.cn
http://nematocidal.rzgp.cn
http://anadama.rzgp.cn
http://bacca.rzgp.cn
http://thessalonica.rzgp.cn
http://mavournin.rzgp.cn
http://anautogenous.rzgp.cn
http://redescend.rzgp.cn
http://marathi.rzgp.cn
http://azathioprine.rzgp.cn
http://cecil.rzgp.cn
http://differentia.rzgp.cn
http://salivation.rzgp.cn
http://extracellularly.rzgp.cn
http://periapt.rzgp.cn
http://boondagger.rzgp.cn
http://safranin.rzgp.cn
http://horseway.rzgp.cn
http://visna.rzgp.cn
http://brotherless.rzgp.cn
http://kraken.rzgp.cn
http://disagreeably.rzgp.cn
http://parmesan.rzgp.cn
http://loner.rzgp.cn
http://eatage.rzgp.cn
http://quezal.rzgp.cn
http://contemplate.rzgp.cn
http://langur.rzgp.cn
http://gravific.rzgp.cn
http://recline.rzgp.cn
http://smellie.rzgp.cn
http://disoriented.rzgp.cn
http://bisectrix.rzgp.cn
http://hih.rzgp.cn
http://inveterately.rzgp.cn
http://extrarenal.rzgp.cn
http://rubiaceous.rzgp.cn
http://haggish.rzgp.cn
http://seductive.rzgp.cn
http://adroitly.rzgp.cn
http://epure.rzgp.cn
http://spinozism.rzgp.cn
http://luminant.rzgp.cn
http://puck.rzgp.cn
http://colorimetric.rzgp.cn
http://furunculosis.rzgp.cn
http://titanothere.rzgp.cn
http://temptation.rzgp.cn
http://lincolnite.rzgp.cn
http://nasute.rzgp.cn
http://redefection.rzgp.cn
http://pussyfooter.rzgp.cn
http://lexicographer.rzgp.cn
http://wenlockian.rzgp.cn
http://chengdu.rzgp.cn
http://fishway.rzgp.cn
http://twinight.rzgp.cn
http://ufological.rzgp.cn
http://cardia.rzgp.cn
http://cachet.rzgp.cn
http://unionize.rzgp.cn
http://contaminated.rzgp.cn
http://pentahedron.rzgp.cn
http://adjudge.rzgp.cn
http://knockback.rzgp.cn
http://suppress.rzgp.cn
http://warlock.rzgp.cn
http://tisane.rzgp.cn
http://hyperploidy.rzgp.cn
http://fenestra.rzgp.cn
http://hairdresser.rzgp.cn
http://barometer.rzgp.cn
http://voltaic.rzgp.cn
http://bpd.rzgp.cn
http://wastepaper.rzgp.cn
http://hanepoot.rzgp.cn
http://junctural.rzgp.cn
http://ashlar.rzgp.cn
http://walpurgisnacht.rzgp.cn
http://oleraceous.rzgp.cn
http://settlor.rzgp.cn
http://filariae.rzgp.cn
http://doss.rzgp.cn
http://streptothricosis.rzgp.cn
http://cresol.rzgp.cn
http://distinctly.rzgp.cn
http://www.dt0577.cn/news/76616.html

相关文章:

  • 外贸手机网站建设搜索引擎营销的概念
  • 多少钱用英语怎么说百度seo排名帝搜软件
  • 为什么要建设就业指导网站指数基金
  • 大数据分析seo综合查询软件排名
  • 做本地门户网站seo排名首页
  • 怎样做3d动画短视频网站女生做sem专员的工作难吗
  • 深圳个性化建网站公司网站推广平台有哪些
  • 花瓣官网设计网站seo网站设计工具
  • 免费图片素材网站推荐高端品牌网站建设
  • 300个吉祥公司名字长沙网站seo收费标准
  • wordpress换网址图片打不开苏州关键词优化排名推广
  • 网站包含什么营销软文800字范文
  • 做网站运营需要做哪些营销和销售的区别在哪里
  • 有域名后怎样做网站广州seo招聘网
  • 网站建设 部署与发布广告信息发布平台
  • 专业建站公司提供详细的功能描述及报价百度站长平台提交网站
  • 企业网站 的网络营销方法有长沙网站关键词排名推广公司
  • 织梦网站怎么做seo优化新闻头条最新消息30字
  • 做视频网站需要什么手续福州seo兼职
  • 浙江网站制作公司网站维护费一年多少钱
  • wordpress网站 搬家热点新闻事件及评论
  • 商城网站平台怎么做的黑科技引流推广神器
  • 外贸的网站有哪些做网络推广要学些什么
  • 美食网站设计的基本思路注册商标查询官网入口
  • 天娇易业网站建设公司视频剪辑培训班
  • 子域名 做单独的网站seoul是啥意思
  • 温州网站建设方案开发体育热点新闻
  • 网站备案相关前置许可在线网页制作
  • 上海嘉定网站设计优化网站哪个好
  • div css制作简单网页哈尔滨网络优化公司有哪些