Leetcode Simplify Path
来源:互联网 发布:电子cad软件 编辑:程序博客网 时间:2024/06/17 13:43
题目:
Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
- Did you consider the case where path =
"/../"
?
In this case, you should return"/"
. - Another corner case is the path might contain multiple slashes
'/'
together, such as"/home//foo/"
.
In this case, you should ignore redundant slashes and return"/home/foo"
.
用栈可以搞,一个点不用管,两个点pop,最后再逆序输出
代码:
class Solution {public: string simplifyPath(string path) { stack<string> s; int pos = 0 while(1) { string tmp = check(path, pos); if(tmp == "") break; if(tmp == ".") continue; if(tmp == "..") { if(!s.empty()) s.pop(); } else s.push(tmp); } if(s.empty()) return "/"; Print(s); return ans; }private: string ans; string check(string path, int &pos) { while(path[pos] == '/') pos ++; string rec; int i; for(i = pos; i < path.size() && path[i] != '/'; i ++) rec += path[i]; pos = i; return rec; } void Print(stack<string> s) { if(s.empty()) return ; string top = s.top(); s.pop(); Print(s); ans += '/'; ans += top; }};
0 0
- LeetCode: Simplify Path
- LeetCode Simplify Path
- LeetCode : Simplify Path
- [Leetcode] Simplify Path
- [leetcode] simplify path
- [LeetCode] Simplify Path
- leetcode 100: Simplify Path
- [leetcode]Simplify Path
- [LeetCode]Simplify Path
- [leetCode] Simplify Path
- [leetcode]Simplify Path
- [leetcode] Simplify Path
- [LeetCode] Simplify Path
- leetcode simplify path
- Leetcode: Simplify Path
- LeetCode题解:Simplify Path
- [LeetCode] Simplify Path
- LeetCode Simplify Path
- PHP与MYSQL中UTF8 中文排序例子
- 【树的直径】 ZJU 3820 Building Fire Stations
- mongodb学习笔记2,mongodb的查询
- JAVA学习第三十三课(常用对象API) —迭代器
- strcpy函数的实现
- Leetcode Simplify Path
- python 定义函数
- PHP之道
- Android代码优化(一)
- 记忆深刻的菱形结构
- hdu 1044Collect More Jewels(bfs+dfs)
- poj 1548 Robots 最小路径覆盖
- hibernate之1.环境搭建
- UVA - 439 Knight Moves