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

网站内部链接怎麽做西安seo排名优化推广价格

网站内部链接怎麽做,西安seo排名优化推广价格,网站过程中遇到问题,宁波网站运营优化系统随想录日记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.bjxfkj.com.cn/article/102733.html

相关文章:

  • 济南 微网站谷歌google浏览器官方下载
  • 沈阳seo专业培训福建seo
  • 网站字体样式网站建设流程步骤
  • 做电影网站 广告收入搜索引擎优化的英语简称
  • 夜间网址你会回来感谢我的青海百度关键词seo
  • 国外设计素材appseo模拟点击工具
  • drupal 网站实例技成培训网
  • 做网站的人跑了网站可以恢复吗培训推广 seo
  • 广州有哪些做网站专业的公司东莞网站推广哪里找
  • 怎么做qq靓号网站百度推广视频
  • 株洲做网站哪家好优化疫情防控
  • 优酷土豆网站建设疫情死亡最新数据消息
  • 邯郸中国建设银行网站整站优化要多少钱
  • 网站怎么样做采集别人网站的文章郑州网站优化外包
  • 网站开发的总结重庆seo推广外包
  • 业余学做衣服上哪个网站免费推广seo
  • 黄图网站有哪些 推荐百度seo提高排名费用
  • 中企动力销售好出单吗seo网站营销公司哪家好
  • 外贸网站建设价格html网页设计模板
  • 在国内怎么做国外网站网站竞价推广怎么做
  • 网站开发下人员配置互联网营销师报考条件
  • 哈尔滨网站开发公司电话孝感seo
  • 绍兴模板建站公司线上招生引流推广方法
  • 手机搞笑网站模板下载安装网上怎么做推广
  • 有没有好的网站是JSP做的网络销售怎么找客户
  • 手机怎样建立网站免费网站建设哪家好
  • 沙井网站制作联系电话搜索量最大的关键词
  • 外贸网站有哪些seo入门版
  • tp5企业网站开发百度云24小时免费看的视频哔哩哔哩
  • 网站隐藏index.php广州抖音seo