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

怎么才能打开一些网站建设一批适合青少年的网站

怎么才能打开一些网站,建设一批适合青少年的网站,全国培训加盟网站建设,网站域名注册商标随想录日记part10 t i m e : time: time: 2024.03.03 主要内容:今天的主要内容是深入了解数据结构中栈和队列,并通过三个 l e e t c o d e leetcode leetcode 题目深化认识。 20. 有效的括号1047. 删除字符串中的所有…

随想录日记part10

t i m e : time: time 2024.03.03



主要内容:今天的主要内容是深入了解数据结构中栈和队列,并通过三个 l e e t c o d e leetcode leetcode 题目深化认识。

  • 20. 有效的括号
  • 1047. 删除字符串中的所有相邻重复项
  • 150. 逆波兰表达式求值


Topic1有效的括号

题目
给定一个只包括 ′ ( ′ , ′ ) ′ , ′ ′ , ′ ′ , ′ [ ′ , ′ ] ′ '(',')','{','}','[',']' ()[] 的字符串 s s s ,判断字符串是否有效。
有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。
  • 每个右括号都有一个对应的相同类型的左括号。

示例
输入: s = " ( ) [ ] " s = "()[]{}" s="()[]"
输出: t r u e true true

思路: 括号匹配是使用栈解决的经典问题

先来分析一下 这里有三种不匹配的情况:

  • 1.字符串里左方向的括号多余
    请添加图片描述

  • 2.括号没有多余,但是括号的类型没有匹配上
    请添加图片描述

  • 3.字符串里右方向的括号多余
    请添加图片描述
    其 java代码的实现与解释如下:

      
class Solution {public boolean isValid(String s) {//建立堆栈Stack<Character> stack = new Stack<>();char ch;//如果s的长度不是偶数则无法匹配if(s.length()%2!=0)return false;for(int i=0;i<s.length();i++){ch=s.charAt(i);if(ch=='('){stack.push(')');}else if(ch=='{'){stack.push('}');}else if(ch=='['){stack.push(']');}else if(stack.isEmpty() || stack.peek()!=ch){return false;}else{stack.pop();}}return stack.isEmpty();}
}

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


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

题目
给出由小写字母组成的字符串 S S S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S S S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

示例
输入: " a b b a c a " "abbaca" "abbaca"
输出: " c a " "ca" "ca"
解释: 例如,在 " a b b a c a " "abbaca" "abbaca" 中,我们可以删除 " b b " "bb" "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 " a a c a " "aaca" "aaca",其中又只有 " a a " "aa" "aa" 可以执行重复项删除操作,所以最后的字符串为 " c a " "ca" "ca"

思路:

本题也是用栈来解决的经典题目,如下图:
请添加图片描述
其 java代码的实现与解释如下:

class Solution {public String removeDuplicates(String s) {//建立堆栈Stack<Character> stack = new Stack<>();char ch;for(int i=0;i<s.length();i++){ch=s.charAt(i);if(stack.isEmpty()==true){stack.push(ch);}else{if(ch==stack.peek())stack.pop();else{stack.push(ch);}}}String te="";while(stack.isEmpty()!=true){te=stack.pop()+te;}return te;}
}

时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1),返回值不计空间复杂度



Topic3逆波兰表达式求值

题目
给你一个字符串数组 t o k e n s tokens tokens ,表示一个根据逆波兰表示法表示的算术表达式。
请你计算该表达式。返回一个表示表达式值的整数。

示例
输入: t o k e n s = [ " 2 " , " 1 " , " + " , " 3 " , " ∗ " ] tokens = ["2","1","+","3","*"] tokens=["2","1","+","3",""]
输出: 该算式转化为常见的中缀算术表达式为: ( ( 2 + 1 ) ∗ 3 ) = 9 ((2 + 1) * 3) = 9 ((2+1)3)=9

思路:

用栈操作运算:遇到数字则入栈;遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中
请添加图片描述)
java实现的代码如下:

cclass Solution {public int evalRPN(String[] tokens) {//建立堆栈Stack<Integer> stack = new Stack<>();for(String s:tokens){if("+".equals(s))stack.push(stack.pop()+stack.pop());else if("-".equals(s))stack.push(-stack.pop()+stack.pop());else if("*".equals(s))stack.push(stack.pop()*stack.pop());else if("/".equals(s)){int temp1 = stack.pop();int temp2 = stack.pop();stack.push(temp2 / temp1);}else stack.push(Integer.valueOf(s));}   return stack.pop();}
}

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

http://www.yayakq.cn/news/371531/

相关文章:

  • 做民宿注册的网站做外贸在哪个网站比较好
  • 做电子画册的网站一个公司做两个网站有影响吗
  • 石家庄企业自助建站国外做的比较好看的网站
  • dw怎么做秋季运动会网站网络推广平台
  • 英文营销网站 知乎中国网站建设公司有哪些
  • 如何用手机建网站百度seo怎么把关键词优化上去
  • WordPress站内链接设置山东酷雅展陈装饰有限公司
  • 做网站难度wordpress 宝塔加速
  • 北京市城乡住房建设部网站so域名的网站有哪些
  • 成都网站排名优化报价中国百强城市榜单排名
  • 番禺网站建设服务贪玩游戏原始传奇官网
  • 用jsp做的网站在不同浏览器显示效果差异很大如何解决快批小程序的收费标准
  • 中国开发网站的公司行程卡微信小程序入口
  • 沈阳做网站的自主式响应网站
  • 高端建网站网推公司
  • 企业网站模板湖南岚鸿模板lamp网站开发黄金组合
  • 企业为什么要做网站网络工程师前景如何
  • 幻灯片网站源码怎么给网站做动图
  • 新手网站建设大型网上购物商城
  • 服装高端网站建设seo国外推广软件
  • .net是建网站的吗河北省建设网站锁安装什么驱动
  • 如何优化网站排名手机如何登录wordpress
  • 学校网站作用营销型网站建设价格
  • 成都网站建设优创智汇阿里云服务器windows系统网站搭建教程
  • 网站服务器放在哪里好摄影师签约有哪些网站
  • 山东网站方案2345网址大全手机版
  • 魔法网站小程序开发自由室内设计师接单网站
  • 网站建设培训 ppt电子工程网络信息技术专业
  • 重庆交通建设集团有限公司网站定制开发软件公司
  • 海外 网站 推广课程网站建设的目的意义