LeetCode Simplify Path

来源:互联网 发布:淘宝贷款利息好高 编辑:程序博客网 时间:2024/05/22 05:05

题目:

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:string simplifyPath(string path) {stack<string> t;int n = path.size();int i = 0;while (i < n) {if (path[i] == '/')i++;string s;while (path[i] != '/' && i < n) {s.push_back(path[i]);i++;}if (s == "." || s == "")continue;else if (s == "..")  {if (!t.empty())t.pop();}elset.push(s);}if (t.empty())return "/";string ans;while (!t.empty()) {ans = "/" + t.top() + ans;t.pop();}return ans;}};


0 0
原创粉丝点击