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

做美国代购的都从哪个网站买友情链接的网站有哪些

做美国代购的都从哪个网站买,友情链接的网站有哪些,花生壳做网站,彩票网站做代理1. 力扣20 : 有效的符号 (1). 题 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个…

1. 力扣20 : 有效的符号

(1). 题

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

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

示例 1:

输入:s = "()"
输出:true

示例 2:

输入:s = "()[]{}"
输出:true

示例 3:

输入:s = "(]"
输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

(2). 思路

自己设计了一个栈类. 首先判断该字符串是否是空字符串,如果不是空字符串,那么将栈的栈顶元素与字符串此时需要比较的字符值进行匹配,如果成功匹配,则将该栈顶元素移除pop,如果不匹配,那么将该字符值push到栈.

判断该字符串是否是有效的,只需判断栈是否为空即可.

(3). 解

class Solution {public boolean isValid(String s) {//如果是空字符串if(s.length() == 0) {return true;}EnStack stack = new EnStack(s.length());int i = 0;while(i < s.length()) {if(stack.peek() == '(' && s.charAt(i) == ')') {stack.pop();} else if (stack.peek() == '{' && s.charAt(i) == '}') {stack.pop();} else if(stack.peek() == '[' && s.charAt(i) == ']') {stack.pop();} else {stack.push(s.charAt(i));}i++;}return stack.isEmpty();}
}
class EnStack{//栈顶指针private int top;private char[] stack;public EnStack(int capacity) {stack = new char[capacity];}public void push(char value) {if(isFull()) {return;}stack[top++] = value;}public void pop() {if (isEmpty()) {return;}--top;}public char peek() {if(isEmpty()) {//只要返回的不是'{','[','('其中之一的字符就行return 'a';}return stack[top - 1];}public boolean isFull() {return top == stack.length;}public boolean isEmpty() {return top == 0;}
}

2. 力扣150 : 逆波兰表达式求值

(1). 题 : 

给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。

请你计算该表达式。返回一个表示表达式值的整数。

注意:

  • 有效的算符为 '+''-''*' 和 '/' 。
  • 每个操作数(运算对象)都可以是一个整数或者另一个表达式。
  • 两个整数之间的除法总是 向零截断 。
  • 表达式中不含除零运算。
  • 输入是一个根据逆波兰表示法表示的算术表达式。
  • 答案及所有中间计算结果可以用 32 位 整数表示。

示例 1:

输入:tokens = ["2","1","+","3","*"]
输出:9
解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9

示例 2:

输入:tokens = ["4","13","5","/","+"]
输出:6
解释:该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6

示例 3:

输入:tokens = ["10","6","9","3","+","-11","*","/","*","17","+","5","+"]
输出:22
解释:该算式转化为常见的中缀算术表达式为:((10 * (6 / ((9 + 3) * -11))) + 17) + 5
= ((10 * (6 / (12 * -11))) + 17) + 5
= ((10 * (6 / -132)) + 17) + 5
= ((10 * 0) + 17) + 5
= (0 + 17) + 5
= 17 + 5
= 22

提示:

  • 1 <= tokens.length <= 104
  • tokens[i] 是一个算符("+""-""*" 或 "/"),或是在范围 [-200, 200] 内的一个整数

逆波兰表达式:

逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。

  • 平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 ) 。
  • 该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * ) 。

逆波兰表达式主要有以下两个优点:

  • 去掉括号后表达式无歧义,上式即便写成 1 2 + 3 4 + * 也可以依据次序计算出正确结果。
  • 适合用栈操作运算:遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中

(2). 思路

使用双端队列,如果字符串内容是整数,则压如栈中. 如果是符号,则弹栈计算结果再压入栈.最后栈中剩余的即是最后计算的结果.

(3). 解

class Solution {public int evalRPN(String[] tokens) {Deque<Integer> stack = new LinkedList<>();int i = 0;while(i < tokens.length) {if(isNumber(tokens[i])) {int k = Integer.parseInt(tokens[i]);stack.push(k);} else {int i1 = stack.pop();int i2 = stack.pop();switch(tokens[i]) {case "+" :stack.push(i1 + i2);break;case "-" :stack.push(i2 - i1);break;case "*" :stack.push(i1 * i2);break;case "/" :stack.push(i2 / i1);break;}}i++;}return stack.pop();}public boolean isNumber(String s) {if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) {return false;} else{return true;}}
}
http://www.ds6.com.cn/news/65459.html

相关文章:

  • 4大门户网站沧州网站seo公司
  • 网站开发近期市场查看网站流量的工具
  • 做网站现成的测试账号网络培训系统
  • 网站开发费用是无形资产优帮云查询数据云查询
  • 阿里巴巴网站官网长沙seo优化推广公司
  • 做购物平台网站需要注意什么高端网站建设
  • 瓦房店 网站建设seo建站优化推广
  • 建网站做seoseo是什么及作用
  • wordpress模块设计深圳优化网站
  • 做网站补贴快速排名优化推广手机
  • 如何建设一个自己的网站企业整站优化
  • 怎么弄推广广告西安百度关键词优化排名
  • 企业网站管理系统aspb站推广有用吗
  • 风铃网做微网站要钱吗新产品推广策划方案
  • 以网站域名做邮箱seo技术培训岳阳
  • 两耳清风怎么做网站网站百度权重
  • 宁波网站建设有限公司互联网营销师报考条件
  • 个人网站程序下载软文推广范文
  • 灰色网站欣赏今日新闻最新消息大事
  • 做网站市场大不大百度竞价广告代理
  • 镇江网站建设教程杭州seo推广优化公司
  • 深圳专业做网站的公司有哪些公司做网络推广怎么做
  • 网络运营者应当对其收集的用户信息严格保密成都黑帽seo
  • 怎么建立购物网站无锡营销型网站制作
  • 做办公用品网站资料怎么收集重庆森林电影完整版
  • 分析网站建设前期的seo准备工作网站运营推广选择乐云seo
  • 电子 东莞网站建设网络推广营销网
  • 网站开发数据库技术毕业论文免费推广方法
  • 不通过网站可以做360全景吗营销推广软件
  • 长沙做网站建设价格长沙官网seo技术厂家