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

天晴创艺网站建设百度小程序佛山网站优化步骤

天晴创艺网站建设百度小程序,佛山网站优化步骤,58同城本地网页版,网站设计制作从哪里学起​#x1f4dd;个人主页#xff1a;Sherry的成长之路 #x1f3e0;学习社区#xff1a;Sherry的成长之路#xff08;个人社区#xff09; #x1f4d6;专栏链接#xff1a;练题 #x1f3af;长路漫漫浩浩#xff0c;万事皆有期待 文章目录 有效的括号删除字符串中的所… ​个人主页Sherry的成长之路 学习社区Sherry的成长之路个人社区 专栏链接练题 长路漫漫浩浩万事皆有期待 文章目录 有效的括号删除字符串中的所有相邻重复项逆波兰表达式求值总结 有效的括号 20. 有效的括号 这道题相信学过数据结构的同学应该并不陌生这道题是一道在学习栈的时候的一道十分经典的题型起初第一次接触的时候多少会有点感觉难现在做来还行的。 题目要求就是将所有的括号匹配起来主要有两种情况会匹配失败 一种是左括号或者右括号出现多余的情况另一种情况是前一个括号与后一个括号不能连续匹配我们可以根据栈这个数据结构的特点使左括号字符都放进去遇到右括号的时候top一下看看栈顶元素是否为相匹配的左括号如果相匹配我们将其弹出栈然后接着遍历如果不匹配我们直接return false 注意如果在碰到右括号时候栈为空则说明栈中没有左括号那么此时直接弹出说明右括号有多余的。如果将整个字符都遍历完了依然没有return那么则说明第二种情况已经判断完毕并没有括号不匹配的情况出现但是此时并不代表就一定没有错误当匹配完毕之后如果栈中还剩下括号说明左括号有多余的。 class Solution { public:bool isValid(string s) {stackint arr1;for(int i0;is.size();i){if(s[i]!)s[i]!}s[i]!]){arr1.push(s[i]);}if(s[i])){if(arr1.empty()true||arr1.top()!(){return false;}else{arr1.pop();}}if(s[i]}){if(arr1.empty()true||arr1.top()!{){return false;}else{arr1.pop();}}if(s[i]]){if(arr1.empty()true||arr1.top()![){return false;}else{arr1.pop();}}}if(arr1.empty()true){return true;}else{return false;}} };还有另一种思路在遇到左括号时候往栈里直接加入右括号然后碰到右括号时候在进行判断和上一种思路基本上是一样的。 class Solution { public:bool isValid(string s) {if(s.size()%2!0){// 如果s的长度为奇数一定不符合要求return false;}stackcharst;for(int i0;is.size();i){if(s[i](){st.push());}else if(s[i]{){st.push(});}else if(s[i][){st.push(]);}// 第二种情况遍历字符串匹配的过程中发现栈里没有我们要匹配的字符。所以return false// 第三种情况遍历字符串匹配的过程中栈已经为空了没有匹配的字符了说明右括号没有找到对应的左括号 return falseelse if(st.empty()||st.top()!s[i]){return false;}else{ // st.top() 与 s[i]相等栈弹出元素st.pop();}}// 第一种情况此时我们已经遍历完了字符串但是栈不为空说明有相应的左括号没有右括号来匹配所以return false否则就return truereturn st.empty();} };删除字符串中的所有相邻重复项 1047. 删除字符串中的所有相邻重复项 这道题是消除字符串中连续的字符只要有相邻重复就直接删除所以并不是我们第一眼看到只有一处相邻相同字符就只删一次可能在删除一处之后又有新的元素碰到一起这时栈派上了用场它可以存储我们遍历过的数据我们只需要判断当前遍历的数据是否和栈顶元素一样一致就将其弹出这样不仅解决了表面的相邻相同字符消去当消去后如果有两个新的相邻相同元素碰到一起了我们也能发现并消除他们一举多得。 class Solution { public:string removeDuplicates(string s) {stackint st;for(char s1:s){if(st.empty()||s1!st.top()){st.push(s1);}else{st.pop();// s 与 st.top()相等的情况}}string result;while(!st.empty()){// 将栈中元素放到result字符串汇总resultst.top();st.pop();}reverse(result.begin(),result.end()); // 此时字符串需要反转一下return result;} };上面的代码我们用字符串来模拟栈的一个实现让字符串的头部充当栈底尾部充当栈顶这样做的好处是避免了直接使用栈的时候数据元素是倒序且还要转换为字符串输出。 class Solution { public:string removeDuplicates(string s) {string result;for(char s1:s){if(result.empty()||result.back()!s1){result.push_back(s1);}else{result.pop_back();}}return result;} };逆波兰表达式求值 150. 逆波兰表达式求值 逆波兰表达式求值这道题的难度是中等题并不是是它有多么难的思路而是如果你没有接触到这个题不是很容易想到解题思路逆波兰表达式实际上就是一种后缀表达式可以把我们日常熟悉的一个等式12* 3*4看成中序表达式画树形图很容易得出那么后续表达式大题运算思路就是两个数遇到符号再进行运算操作没遇到符号时候先保留起来每次遇到符号拿出两个操作数操作这种思路很适用于栈的数据结构。 class Solution { public:int evalRPN(vectorstring tokens) {stackint st;for(int i0;itokens.size();i){if(tokens[i]||tokens[i]-||tokens[i]*||tokens[i]/){long long num1st.top();st.pop();long long num2st.top();st.pop();if(tokens[i]){st.push(num1num2);}if(tokens[i]-){st.push(num2-num1);}if(tokens[i]*){st.push(num2*num1);}if(tokens[i]/){st.push(num2/num1);}}else{st.push(stoll(tokens[i]));//在C中std::stoll函数用于将字符串转换为长整型long long数据类型。}}int result st.top();st.pop();// 把栈里最后一个元素弹出其实不弹出也没事return result;} };具体代码如上在未碰到操作符时将数字入栈遇到操作符再取出两个操作符值得注意的是操作数顺序很重要是第二个操作数相对于第一个操作数来进行操作数据放入里的stoll函数作用是将字符串转换为long数据类型。此外这道题并不需要我们来判断传输进来的数据是否合法只需要我们写出判断字符和数据的代码即可。 总结 今天我们完成了有效的括号、删除字符串中的所有相邻重复项、逆波兰表达式求值三道题目相关的思想需要多复习回顾。接下来我们继续进行算法练习·。希望我的文章和讲解能对大家的学习提供一些帮助。 当然本文仍有许多不足之处欢迎各位小伙伴们随时私信交流、批评指正我们下期见~
http://www.yayakq.cn/news/2942/

相关文章:

  • win7可以做网站吗设计师之家
  • 广州网站建设多少钱广东省阳江网络问政平台
  • 青岛网站建设公司招聘上海环球金融中心简笔画
  • 用kid做教育网站域名商丘至开网络科技有限公司
  • 将网站保存怎么做lol怎么做直播网站
  • 福建设计招聘网站做微信公众号的网站吗
  • 两学一做 山西答题网站茌平网站制作
  • 兰州做网站怎么样wordpress怎样修改页脚版权信息
  • 上海虹桥站福州关键词自然排名
  • 医疗门户网站模板网站备案到
  • 用wordpress搭建娱乐网陕西seo快速排名
  • 洛阳便宜网站建设费用电子商务平台经营者有哪些义务
  • 自己公司网站设计怎么制作自己的网址
  • 中小型企业网站大全在微信上怎么卖自己的产品
  • 企业建站系统漏洞甘肃省酒泉市做网站公司
  • 做网站需要具备什么网站开发设计的技术路线
  • 淘宝客网站建站建设网站建设哪家快
  • 自己做蛋糕有什么网站吗口碑好网站建设价格低
  • 莆田有建设网站的公司码环艺做网站
  • 可以做空股票的网站企业文化经典句子
  • 莱芜网站建设公司在线做图网站
  • 阿里云做网站麻烦吗wordpress主题 know how
  • 专业制作公司网站公司顺义石家庄网站建设
  • 青岛黄岛区做网站设计的wordpress 图标 png
  • 科技 网站 推荐ppt做网站
  • 厦门建设局公维金网站怎样在网上卖自己的东西
  • 网站搭建前景网站更换主机注意
  • html5 中文网站模板dw和vs做网站
  • 成都优化网站源头厂家南京工程网站建设
  • 制作网站开发公司网页制作与设计站点应该怎么建