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

用ps怎么做网站效果图微信h5页面制作免费软件

用ps怎么做网站效果图,微信h5页面制作免费软件,知名品牌策划设计公司,精准客户怎么营销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.yayakq.cn/news/272802/

相关文章:

  • linux代码做网站广州番禺区职业技术学校中职
  • 网络营销网站建设设计方案怎么做网站接家纺订单
  • 婚庆网站策划书学生作业制作网站
  • 制作网站对话框广西圣泰建设工程有限公司网站
  • 婚纱网站怎么做湖南长沙网站建设公司
  • 河东做网站公司做网页设计软件有哪些
  • 昆明做网站ynlongtou网站开发获取本地ip
  • 协会网站信息平台建设我赢网seo优化网站
  • 网络网站首页设计2022成都解封倒计时
  • 找人做网站昆明网站建设亇金手指排名十四
  • 怎样开发手机网站建设那些论坛网站做的比较好
  • 坪山商城网站建设哪家效益快汽车商城网站建设
  • 网站建设企业站有哪些要求网络安全行业公司排名
  • 大学生简历制作网站如何使用家里电脑做网站服务器
  • 成都高端建设网站网站必须做可信认证吗
  • 深圳网站建设计怎样进行网站板块建设
  • 做网站的工具 论坛开公司要多少注册资金
  • ftp 企业网站福建省建筑信息平台
  • 门户网站开发需求定制衣服的app
  • 长沙专业网站建设公司排名和各大网站做视频的工作总结
  • 大连市网站制作电话php网站开发用什么php
  • 网站开发公司特点番禺seo培训
  • 百度突然搜不到网站建个人网站有什么好处
  • 如何建设一个好的网站2017网站开发新技术
  • 网站qq一键登录天津做网站好的公司有哪些
  • .net 网站开发教程html网站免费下载
  • 零陵网站建设网站的布局怎么做
  • wordpress 全站密码网络营销与直播电商专升本
  • 网站推广的方式?使用阿里云做镜像网站
  • 网站建设要素公司可以做网站