标签:path unix leetcode string 算法
problem:
Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
"/../"
?"/"
.‘/‘
together,
such as "/home//foo/"
."/home/foo"
.
thinking:
提示使用stack来做
code:
class Solution { public: string simplifyPath(string path) { stack<string> s; string str; for(int i = 0; i < path.size(); i++) { if (path[i] == '/') { if (str == "..") { if (!s.empty()) s.pop(); } else if (str != "." && str != "") { s.push(str); } str = ""; } else { str += path[i]; } } if (str == "..") { if (!s.empty()) s.pop(); } else if (str != "." && str != "") s.push(str); if (s.empty()) return "/"; string ret; while(!s.empty()) { ret = "/" + s.top() + ret; s.pop(); } return ret; } };
标签:path unix leetcode string 算法
原文地址:http://blog.csdn.net/hustyangju/article/details/44954983