Simplify Path leetcode

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.

 

Subscribe to see which companies asked this question

 
这里我投机取巧,使用了C++自带的getline函数,只需要将每行的分隔符设置为"/",就可以成功将子路径分离出来,如果需要锻炼编程能力的话,最好自己实现下
string simplifyPath(string path) {
    string str;
    vector<string> strs;
    stringstream ss(path);
    while (getline(ss, str, '/'))
    {
        if (str == "." || str == "")
            continue;
        else if (str == "..") {
            if (!strs.empty())
                strs.pop_back();
        }        
        else
            strs.push_back(str);
    }
    string ret;
    for (auto s : strs)
        ret += "/" + s;
    return ret.empty() ? "/" : ret;
}

 

posted @ 2016-01-13 19:40  sdlwlxf  阅读(118)  评论(0编辑  收藏  举报