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

铜仁网站建设哪家专业网站建设中模板代码

铜仁网站建设哪家专业,网站建设中模板代码,双陈记 wordpress,近期军事新闻热点事件Day 29 题目描述 思路 根据题目要求,字符串如果是合法,需要满足三个条件,这里最重要的是第二个条件,括号必须按照正确顺序闭合,也就是({)}这种情况是不合法的,因此有以下做法&…

Day 29

题目描述

在这里插入图片描述

思路

根据题目要求,字符串如果是合法,需要满足三个条件,这里最重要的是第二个条件,括号必须按照正确顺序闭合,也就是({)}这种情况是不合法的,因此有以下做法:

  1. 创建一个栈用来存放左括号left
  2. 从前向后遍历字符串
  3. 如果为左括号,就加入到栈中
  4. 如果为右括号,判断栈中是否有元素(无元素返回false),有元素就取出顶部元素,如果不匹配(返回false),匹配就继续遍历字符串
  5. 遍历结束后,如果左括号栈不为空,也返回false
  6. 最后如果左括号为空,返回true。
class Solution {public boolean isValid(String s) {Stack<Character> left = new Stack<>();char c;for (int i = 0; i < s.length(); i++) {c = s.charAt(i);if (c == '(' || c == '{' || c == '[') {left.push(c);}else if (c == ')'){if (!left.isEmpty()&&left.peek() == '(') {left.pop();}else{return false;}}else if (c == '}'){if (!left.isEmpty()&&left.peek() == '{') {left.pop();}else{return false;}}else{if (!left.isEmpty()&&left.peek() == '[') {left.pop();}else{return false;}}}if(left.isEmpty()){return true;}else return false;}
}

题目描述

在这里插入图片描述

思路

难点:此题难点在于如何处理返回上一级文件夹,而且可能出现/d/c/./b/。。/。。/a这种情况,需要连续返回两个文件夹.(结果应该返回/d/a)
初次思路:首先对于这个给出的字符串,有用的信息即为文件名(包括。,。。,。。。),我的想法是创建一个栈,依次取出文件名加入到栈中,依次弹出栈后单独处理/即可
做法:

  1. 创建一个栈来存放文件名,创建一个res来存放结果
  2. 从头开始遍历字符串,依次取出文件名(这段建议看看代码)
  3. 遍历栈,取出栈顶文件名,弹出栈顶。
  4. 如果栈顶文件名为。。(最麻烦的一种情况),创建一个计数器初始为1,记录之后弹出的元素中有几个。。,
  5. 取出栈顶元素,如果为。。,计数器加1,弹出栈,重复以上操作,直到栈顶元素不为。。
  6. 此时我们有计数器,循环弹出,直到计数器为0,我们还得接着弹出栈,弹出栈可能存在三种情况,如果为弹出的栈顶元素为。,什么都不做,因为根据题意。是要被省略的;如果弹出栈顶元素为。。,计数器加1;如果弹出元素为其他,计数器-1
  7. (续4)如果栈顶为。,直接弹出栈顶元素,不处理
  8. 如果栈顶为其他,说明这个是我们要找的文件名, res=‘/’+filrname+res保存结果(这样可以满足起始为/,结尾不为/)
  9. 遍历结束时,如果res为空,则加一个/(可能/。的情况)
    10.返回res
class Solution {public String simplifyPath(String path) {Stack<String> file = new Stack<>();String filrname="";String res="";int x=0;for (int i = 0; i < path.length(); i++) {//取出文件名if (path.charAt(i) != '/') {filrname=filrname+path.charAt(i);}else {if(!filrname.equals("")){//防止存入空值file.add(filrname);filrname="";}}}if(!filrname.equals("")){//因为最后一个文件名后可能不存在/,单独处理一下file.add(filrname);}//将所有的文件名加入到了栈中if(file.isEmpty()){res="/";return res;}while (!file.isEmpty()) {//遍历栈filrname=file.peek();file.pop();if(filrname.equals("..")){//说明要跳过栈中的下一个元素int sum=1;//还要跳过的元素while(!file.isEmpty()){if(file.peek().equals("..")){//弹出。。,记录还要跳过的元素的个数sum++;file.pop();}else{//不为。。就终止break;}}while (sum!=0){if(!file.isEmpty()){//防止报错if(file.peek().equals(".")){//省略file.pop();}else if(file.peek().equals("..")){//还得弹出,计数器加一file.pop();sum++;}else{//计数器-1file.pop();sum--;}}else{break;}}}else if(filrname.equals(".")){//不处理}else{//加入到结果字符串res='/'+filrname+res;}}if(res.equals("")){//防止/。res="/";}return res;  }
}
http://www.dtcms.com/a/596924.html

相关文章:

  • 关于ankh库加载本地模型的改进用于解决服务器无法连接外网的问题
  • 基于springboot的旅游攻略网站设计与实现
  • Haldane先验:极端无知假设下的贝叶斯推断
  • 15.【NXP 号令者RT1052】开发——实战-XBAR
  • 中小型网站建设与管理总结小超人成都网站建设
  • MATLAB | 如何使用MATLAB一键生成拼豆图纸
  • 如何设计一个高扩展的加密狗集成策略
  • zoho crm 如何设置富文本字段为必填
  • ✨WPF编程进阶【7.1】动画基础
  • 整体设计 全面梳理复盘之31 Transformer 九宫格三层架构 Designer 全部功能定稿(初稿)之3
  • 建设网站需要多久做网站的资源有哪些
  • 手机网站怎么做推广郑州广告公司网站建设
  • 世界各地的软件包:探索 Arch Linux 中的软件包
  • 关于设计图的网站网站新闻百度收录
  • MySQL 迁移总结报告
  • 昆明网站建设公司猎狐科技怎么样南约社区网站建设
  • 跨服务器复制conda环境
  • 联想打印机驱动出现故障怎么办?最新的打印机驱动修复方法
  • 安装部署自己的nginx
  • 技术速递|GitHub Copilot 和 AI Agent 如何拯救传统系统
  • wordpress网站同步插件网络优化的工作流程
  • C语言动态内存管理:从基础到进阶的完整解析
  • Java中的静态代理与动态代理(Proxy.newProxyInstance)
  • 2528. 最大化城市的最小电量
  • 网站建设带服务器新浪舆情通官网
  • 16.udp_socket
  • OpenAI 新推 GPT-5-Codex-Mini:一款针对开发者的轻量级编码助手
  • GPTs智能体案例解析(小红书文案、流程图设计与编辑)
  • 广告宣传网站免费行情软件网站大全
  • 机器学习过拟合和正则化