Simplify Path

来源:互联网 发布:数据库关系模式怎么写 编辑:程序博客网 时间:2024/05/14 05:00

使用一个栈来存储解析出来的每一个路径,遇到..则出栈。时间O(n),空间O(n)。

class Solution {public:    string simplifyPath(string path) {        vector<string> dirs;    int start = 1;    int cur = 0;        while(cur = path.find('/', start))        {            string dir;            if(cur != string::npos)                dir = path.substr(start, cur-start);            else                dir = path.substr(start, path.size()-start);                            if(dir == "..")            {            if(dirs.size())dirs.pop_back();            }            else if(dir != "." && dir != "")            dirs.push_back(dir);                        if(cur == string::npos)                break;            else                start = cur+1;        }            //reconstruct the path from stack        string result;        if(dirs.empty())    return "/";        for(auto dir: dirs)        {        result += ("/" + dir);        }        return result;    }};


0 0
原创粉丝点击