Leetcode 71 Simplify Path

2018-01-12 15:00:28 浏览数 (1)

Given an absolute path for a file (Unix-style), simplify it.

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".
代码语言:javascript复制
class Solution {
public:
    string simplifyPath(string path) {
        string result,temp;
        vector<string> s;
        path ='/';
        for(int i=0;i<path.size();i  )
        {
            if(path[i]=='/')
            {
                if(temp=="" || temp==".")
                {
                }
                else if(temp=="..")
                {
                    if(!s.empty()) s.pop_back();
                }
                else
                    s.push_back(temp);
                temp="";
            }
            else
                temp =path[i];
        }
        if(!path.empty() && s.empty()) result ='/';
        for(int i=0;i<s.size();i  ) result ='/' s[i];
        return result;
    }
};

0 人点赞