Simplify Path

方法:这里实际只需要处理".."和对应的字符

class Solution {
public:
    string simplifyPath(string path) {
        vector<string> s;
        
        for(string::iterator iter = path.begin(); iter != path.end(); )
        {
            ++iter;
            string::iterator _iter = find(iter, path.end(), '/');
            string dir = string(iter, _iter);
            
            if(!dir.empty() && dir != ".")
            {
                if(dir == "..")
                {
                    if(!s.empty())
                        s.pop_back();
                }
                else
                    s.push_back(dir);
            }
            
            iter = _iter;
        }
        
        stringstream ss;
        if(s.empty())
            ss << "/";
        else
        {
            for(vector<string>::iterator iter=s.begin(); iter != s.end(); ++iter)
                ss << "/" << *iter;
        }
        
        return ss.str();
    }
};

 

posted @ 2017-04-25 20:55  chengcy  Views(125)  Comments(0)    收藏  举报