simplify-path-字符串处理,去除多余路径
题目描述
Given an absolute path for a file (Unix-style), simplify it.
For example,
path ="/home/", =>"/home"
path ="/a/./b/../../c/", =>"/c"
Corner Cases:
- Did you consider the case where path ="/../"?
In this case, you should return"/". - Another corner case is the path might contain multiple slashes'/'together, such as"/home//foo/".
In this case, you should ignore redundant slashes and return"/home/foo".
记住stringstream以及getline函数的作用
class Solution { public: string simplifyPath(string path) { vector<string> str; stringstream ss(path); string sub; while(getline(ss,sub,'/')) { if(sub=="."||sub=="") continue; if(sub==".."&&str.size()) str.pop_back(); if(sub!="..") str.push_back(sub); } string res; for(string s:str) res+="/"+s; if(res.empty()) res+="/"; return res; } };
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=