[leetcode] Simplify Path
来源:互联网 发布:各种编程语言的区别 编辑:程序博客网 时间:2024/06/04 19:40
题目:
Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
click to show corner cases.
Corner Cases:
- 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"
.
class Solution {public: /*** * 注意几个细节: * 1)重复连续出现的'/',只按1个处理,即跳过重复连续出现的'/'; * 2)如果路径名是".",则不处理; * 3)如果路径名是"..",则需要弹栈,如果栈为空,则不做处理; * 4)如果路径名为其他字符串,入栈。 * * * */ string simplifyPath(string path) { int size = path.size(); stack<string> ss; for(int i = 0; i < size;){ //跳过'/' while('/' == path[i] && i < size) ++ i; //记录路径名称 string s = ""; while('/' != path[i] && i < size) s += path[i ++]; //对当前路径进行处理 if(s == ".." && !ss.empty()) ss.pop(); else if(s != "" && s!= "." && s != "..") ss.push(s); } string res = ""; if(ss.empty()) return "/"; else{ //注意输出顺序 while(!ss.empty()){ res = "/" + ss.top() + res; ss.pop(); } } return res; }};
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
- Maven(一)——安装(包括Eclipse的Maven插件)
- 在Ubuntu14.04上安装Hadoop
- @autowired和@Resource
- 取得中科院分词等相关系统的授权
- windows下log的重定向输出
- [leetcode] Simplify Path
- ERROR 1197 (HY000)
- 汇编语言的数据段内的问号'?'表示多大的值?
- 8A - Train and Peter
- 完美集群监控组合ganglia和nagios
- HDU 1108
- gmaping建图环境
- EventBus深入浅析之基本使用
- C语言写文件问题,一个你想也想不到的问题。