2022-3-19 Leetcode 71. 简化路径
第一版
class Solution {public:string simplifyPath(string path) {vector<string> mysk;string ret;int i = 0;int len = path.size();while(i < len){int count = 0;int alpha = 0;string word;while(i < len && path[i] == '.'){count++;i++;}if(count == 2){if(!mysk.empty())mysk.pop_back();}else if(count > 2){mysk.push_back(string(count,'.'));}while(isalpha(path[i]) || path[i] == '_'){alpha++;i++;}word = path.substr(i-alpha,alpha);if(!word.empty())mysk.push_back(word);i++;}if(mysk.empty()){return "/";}for(i = 0;i < mysk.size();i++){ret += ("/" +mysk[i]);}return ret;}
};
第二版
class Solution {public:string simplifyPath(string path) {vector<string> mysk;string ret;int i = 0;int len = path.size();while(i < len){int count = 0;int alpha = 0;string word;while(i < len && path[i] == '.'){count++;i++;}if(count == 2 && (i == len || path[i] == '/')&& i > 2 && path[i-3] == '/'){if(!mysk.empty())mysk.pop_back();}else if(count > 2 && path[i] == '/'){mysk.push_back(string(count,'.'));}else if(count == 1 && (i == len || path[i] == '/')){}else {word += string(count,'.');}while(isalpha(path[i]) || path[i] == '_'){alpha++;i++;}word += path.substr(i-alpha,alpha);if(!word.empty())mysk.push_back(word);i++;}if(mysk.empty()){return "/";}for(i = 0;i < mysk.size();i++){ret += ("/" +mysk[i]);}return ret;}
};
第三版
class Solution {public:string simplifyPath(string path) {vector<string> mysk;string ret;while(!path.empty()){string word;int cur = path.find('/');if(cur == string::npos){word = path;}word = path.substr(0,cur);if(word == "."){word = "";// }else if(word == ".." && !mysk.empty()){}else if(word == ".."){if(!mysk.empty())mysk.pop_back();word = "";}else if(!word.empty()){mysk.push_back(word);}path.erase(0,cur+1);if(cur == string::npos)break;}if(mysk.empty()){return "/";}for(int i = 0;i < mysk.size();i++){ret += ('/' + mysk[i]);}return ret;}
};
2022-7-19的一版
class Solution {public:string simplifyPath(string path) {deque<string> m_stack;int i = 0; int len = path.size();for (; i < len; i++){while (i < len && path[i] == '/') i++;int j = i;while (j < len && path[j] != '/') j++;string str = path.substr(i, j - i);if (str == ".."){if (!m_stack.empty())m_stack.pop_back();} else if (str != "" && str != "."){m_stack.push_back(str);}i = j;}string ans;while (!m_stack.empty()){ans += '/';string str = m_stack.front();m_stack.pop_front();ans += str;}return ans == "" ? "/" : ans;}
};
2022-3-19 Leetcode 71. 简化路径相关推荐
- LeetCode 71. 简化路径(栈)
1. 题目 以 Unix 风格给出一个文件的绝对路径,你需要简化它.或者换句话说,将其转换为规范路径. 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身:此外,两个点 (..) 表示将目录 ...
- LeetCode —— 71.简化路径(Python3)
以 Unix 风格给出一个文件的绝对路径,你需要简化它.或者换句话说,将其转换为规范路径. 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身:此外,两个点 (-) 表示将目录切换到上一级( ...
- LeetCode 70爬楼梯71简化路径72编辑距离(dp)
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注这个潇洒青年一起飞,回 ...
- LeetCode+ 71 - 75
简化路径 算法标签:栈.字符串 给我们一个路径,要求把文件路径化简,给定的路径一定是合法的 Linux 路径,一个合法的 Linux 路径一般从 / 开始,/ 表示根目录,有很多的子目录 home.y ...
- LeetCode 71~75
前言 本文隶属于专栏<LeetCode 刷题汇总>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构请见LeetCode 刷题汇总 正文 幕布 幕 ...
- LeetCode/LintCode 题解丨一周爆刷字符串:简化路径
描述 给定一个文件的绝对路径(Unix-style),请进行路径简化. Unix中, . 表示当前目录, - 表示父目录. 结果必须以 / 开头,并且两个目录名之间有且只有一个 /.最后一个目录名(如 ...
- LeetCode 71. Simplify Path
LeetCode 71. Simplify Path 本博客转载自:https://blog.csdn.net/makuiyu/article/details/44497901 Solution1:没 ...
- ida pro学习笔记2022.3.19
2022.3.19学习笔记 基本块:是一个不包含分支,从头执行到尾的最大指令序列.每个基本块,都有唯一的入口点(块中的第一条指令)和退出点(块中的最后一条指令). 基本块的第一条指令通常是分支指令的目 ...
- leetcode 64. 最小路径和(递归 / 动态规划解法图解)(Java版)
题目 leetcode 64. 最小路径和 提示: m == grid.length n == grid[i].length 1 <= m, n <= 200 0 <= grid[i ...
最新文章
- JAVA 线上故障排查完整套路!牛掰!
- 【动态规划、计算几何】最优三角剖分
- Java(CS)请求分流
- 【DIY】200521近期在做的项目小结,DIY进展汇报
- html中下拉列表监听事件,ExtJS 下拉框监听事件、日期选择器监听事件、实现动态给items添加删除数据...
- redis 配置允许其他主机可以远程连接redis
- java 单开程序_java生成jar包并且单进程运行的实例
- 解决:-bash: telnet: command not found
- 17R-无重复数字的三位数和去重后最大数
- Oracle ERP简介
- 【C】输出乘法口诀表
- 18年韩师插本c语言的题答案,插本全能题库
- Unity3d游戏开发用哪个语言更好?
- 关于Linux消息队列的简单说明、使用、编码
- 会议OA项目排座功能以及送审功能
- 程序员通病:小厂薪资低,想跳槽,又担心面试过不了!
- 编译MapGuide
- 手机QQ视频图像是反的——解决办法
- java 案例写作_用Java编写一个银行转账案例
- c 语言10个数首尾连接,相邻4个和,西安交通大学18年9月课程考试《计算机控制技术》作业考核试题答案...