LeetCode: Simplify Path
2012-11-05 14:21
316 查看
Given an absolute path for a file (Unix-style), simplify it.
For example,
path =
=>
path =
=>
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
such as
In this case, you should ignore redundant slashes and return
For example,
path =
"/home/",
=>
"/home"
path =
"/a/./b/../../c/",
=>
"/c"
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: string simplifyPath(string path) { // Start typing your C/C++ solution below // DO NOT write int main() function int len = path.size(); if (len == 0) return "/"; vector<string> stk; int left = '/' == path[0]? 0: -1; int right; while(left < len) { right = left; while(++right < len && '/' != path[right]); string part = path.substr(left+1, right-left-1); left = right; if("." == part || "" == part) continue; else if(".." == part) { if(stk.size() > 0) stk.pop_back(); } else stk.push_back(part); } if (stk.size() > 0) { string result = ""; for (int i = 0; i < stk.size(); ++i) { result += '/' + stk[i]; } return result; } else return "/"; } };
相关文章推荐
- LeetCode-Simplify Path
- LeetCode: Simplify Path
- 【Leetcode】【Medium】Simplify Path
- LeetCode71 Simplify Path
- [LeetCode]Simplify Path
- [LeetCode] Simplify Path
- LeetCode之Simplify Path
- Simplify Path(leetcode)
- 69 leetcode - Simplify Path
- LeetCode71 Simplify Path 解题报告
- leetcode-Simplify Path
- LeetCode---Simplify Path
- [LeetCode]Simplify Path
- [LeetCode]Simplify Path
- LeetCode - Refresh - Simplify Path
- 【leetcode】Simplify Path
- [LeetCode]Simplify Path
- Leetcode Simplify Path
- 【LeetCode】Simplify Path 解题报告
- LeetCode 71. Simplify Path