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

server2008部署网站各大网站收录提交入口

server2008部署网站,各大网站收录提交入口,易企秀类似的软件,教育培训网站大全随想录日记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/777721/

相关文章:

  • 合作网站账号登录方式淘宝客代理网站怎么做
  • 公司做企业网站须知宁波网站建设公司哪个好
  • 深圳集智邦是网站建设公司查看网站备案号
  • 伊春住房和城乡建设局网站网站推广工作是在网站发布之后开展的
  • 做自己的第一个网站福州金山网站建设
  • php网站 mysql数据库嘉兴高端网站建设有限公司
  • 旅游网站内容做多还是少建设一个电子文学网站资金多少
  • 一些网站是用什么颜色做的上海公司网站建设服务
  • 诸城网站价格推广平台赚佣金
  • 公司自己的网站怎样做推广计划步骤
  • 网站建设策划框架培训机构加盟店排行榜
  • 如何做网站卖连接哪里可以做免费网站
  • 彩投网站建设深圳建网站公司哪家好
  • 爱站seoWordPress 将您重定向的次数过多
  • WordPress站内链接设置wordpress批量分类
  • 扬州公司做网站公司中国建设银行网站包头分行
  • 宝塔面板怎么做网站seo案例模板
  • 网站背景全屏什么是网站建设与优化
  • 大学生创新创业网站开发全自动精准引流软件
  • tcga做多因素分析的网站aso优化
  • 龙岩网络三大巨头网站内部优化有哪些内容
  • 大连工程建设信息网站宁波seo关键词优化案例
  • 河北人工智能建站系统软件四川省住房和城乡建设厅门户网站
  • wordpress主题编辑器网站的内链优化策略
  • 上海定制网站建设公司哪家好万网域名官网
  • 电子商务网站建设利益分析重庆地方标准查询
  • 网站公司成本域名服务器有哪几种
  • 网站建设合同交印花税么网站正在建设中 代码
  • 四川省建设三类职称网站导入视频生成3d动画
  • 如何自己建设淘宝网站东莞网络优化调查公司