71. Simplify Path

来源:互联网 发布:mac同步iphone照片 编辑:程序博客网 时间:2024/06/04 01:07



class Solution {public:    string simplifyPath(string path) {        int n=path.size();        vector<string> paths;        int i,j;        for(i=0;i<n;i++)        {            string tmp="";            while(i<n&&path[i]!='/')            {                tmp+=path[i];                i++;            }            if(tmp==".")                continue;            else if(tmp==""&&!paths.empty())                continue;            else if(tmp=="..")            {                if(!paths.empty()&&!(paths.size()==1&&paths[0]==""))                    paths.pop_back();            }            else                paths.push_back(tmp);        }        if(paths.size()==0||(paths.size()==1&&paths[0]==""))            return "/";        string ans=paths[0];        for(i=1;i<paths.size();i++)        {            ans+="/";            ans+=paths[i];        }        return ans;    }};


update:

class Solution {public:    string simplifyPath(string path) {        int n=path.size();        vector<string> paths;        int i,j;        for(i=0;i<n;)        {            while(i<n&&path[i]=='/')                i++;            string tmp="";            while(i<n&&path[i]!='/')            {                tmp+=path[i];                i++;            }            if(tmp==".."&&paths.size()!=0)                paths.pop_back();            else if(tmp!=""&&tmp!="."&&tmp!="..")                paths.push_back(tmp);        }        string ans="";        if(paths.size()==0)            return "/";        for(i=0;i<paths.size();i++)        {            ans+="/"+paths[i];        }        return ans;    }};


0 0