Leetcode Simplify Path
程序员文章站
2022-03-05 12:13:23
...
Given an absolute path for a file (Unix-style), simplify it.
For example,path =
"/home/"
, => "/home"
path = "/a/./b/../../c/"
, =>
"/c"
对unix-style的path进行了下了解,.可以忽略不计,..返回上一级目录,因此我们就需要一个结构来存储上一级目录,也就是后进先进,当然理所当然的就是栈结构。然后需要注意的是,栈在为空的时候不能调用pop操作,以及最后输出结果时,路径的顺序不要弄反了 - -
代码如下:
class Solution {
public:
string simplifyPath(string path) {
stack<string> stack;
stringstream ss(path);
string tmp;
while(getline(ss,tmp,'/'))
{
if(tmp == "." || tmp == "") continue;
else if(tmp == ".." && !stack.empty())
stack.pop();
else if(tmp != "..")
stack.push(tmp);
}
string result;
while(!stack.empty())
{
result = "/"+stack.top() + result;
stack.pop();
}
return result.empty()?"/":result;
}
};
上一篇: openssl ruby centos
下一篇: TS码流解析-3-解析PAT表
推荐阅读
-
C#中Path类的常用方法
-
jQuery版仿Path菜单效果实现方法
-
Leetcode算法【114. 二叉树展开为链表】
-
SQL Server FOR XML PATH 和 STUFF函数的用法
-
LeetCode 50. Pow(x, n)
-
java环境变量为什么要配置path和classpath详细解答
-
[leetcode]不同路径三连击~
-
Nginx(PHP/fastcgi)的PATH_INFO问题
-
LeetCode——Department Highest Salary(花式使用IN以及GROUP BY)
-
LeetCode——Department Top Three Salaries(巧妙使用子查询)