首页 > 其他 > 详细

Simplify Path leetcode

时间:2016-01-13 21:25:01      阅读:261      评论:0      收藏:0      [点我收藏+]

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;
}

 

Simplify Path leetcode

原文:http://www.cnblogs.com/sdlwlxf/p/5128284.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!