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

待解决 leetcode71 简化路径 栈的应用

用多种ifelse很不好很复杂容易丢情况

class Solution {
public:string simplifyPath(string path) {stack<char> st;string result;int n = path.size();while(n > 1 && (path[n-1] == '/' || path[n-1] == '.')){if(n > 2 && path[n-2] == '.' && path[n-1] == '.' ){break;}if(n > 2 && path[n-2] != '/' && path[n-1] == '.' ){break;}n -- ;}for(int i = 0; i <= n-1; i++){while(!st.empty() && st.top() == '/' && path[i] == '/'){i++;}if(!st.empty() && st.top() == '/' && path[i] == '.' && (i + 1 >= n || path[i+1] =='/')){i++;continue;}else if(!st.empty() && st.top() == '/' && path[i] == '.' && i+1 < n && path[i+1] == '.' && (i + 2 >= n || path[i+2] == '/')){i += 2;if(!st.empty()){st.pop();if(st.empty()){st.push('/');}while(!st.empty() && st.top() != '/'){st.pop();}}continue;}else{st.push(path[i]);}}if (!st.empty() && st.top() == '/' && st.size() > 1) {st.pop();}for(int i = st.size();i>0;i--){result = st.top() + result;st.pop();}return result;}
};

另一种方法等一等后面加入吧

http://www.lryc.cn/news/543613.html

相关文章:

  • 数据安全_笔记系列09_人工智能(AI)与机器学习(ML)在数据安全中的深度应用
  • RocketMQ 可观测性最佳实践
  • P9420 [蓝桥杯 2023 国 B] 子 2023
  • OpenAI开放Deep Research权限,AI智能体大战升级,DeepSeek与Claude迎来新对决
  • 学习笔记04——JMM内存模型
  • 将VsCode变得顺手好用(1
  • Fisher信息矩阵(Fisher Information Matrix,简称FIM)
  • Vue2+Three.js加载并展示一个三维模型(提供Gitee源码)
  • Linux红帽:RHCSA认证知识讲解(三)Linux基础指令与Vim编辑器的使用
  • python读取sqlite温度数据,并画出折线图
  • 《论企业集成平台的理解与应用》审题技巧 - 系统架构设计师
  • UE Python笔记
  • 使用django调用deepseek api,搭建ai网站
  • YOLOv12 ——基于卷积神经网络的快速推理速度与注意力机制带来的增强性能结合
  • 两台互通的服务器使用Docker部署一主两从MySQL8.0.35
  • Java23种设计模式案例
  • stm32hal库寻迹+蓝牙智能车(STM32F103C8T6)
  • JavaScript知识点4
  • 形式化数学编程在AI医疗中的探索路径分析
  • QT 引入Quazip和Zlib源码工程到项目中,无需编译成库,跨平台,加密压缩,带有压缩进度
  • Ubuntu 安装 Nginx并配置反向代理
  • GitHub SSH连接问题解决指南
  • C++ 跨平台的 GetCurrentThreadId() 获取当前线程ID实现
  • 钉钉MAKE AI生态大会思考
  • SQL笔记#复杂查询
  • 【Linux】基于UDP/TCP套接字编程与守护进程
  • springboot 引入前端
  • RTSP/Onvif安防平台EasyNVR接入EasyNVS显示服务缺失的原因与解决方案
  • 算法系列之回溯算法
  • Uniapp 小程序接口封装与使用