leetcode-71. 简化路径
题目:
代码:
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
using namespace std;
string simplifyPath(string path) {
/**
""或"."直接跳过
".."且数组不为空时,返回上一级目录,删除数组最后一个元素
其他则为有效目录名:插到数组中
**/
vector<string> s;
stringstream ss(path);
string res;
while(getline(ss,res,'/')){
if(res=="" || res=="."){
continue;
}else if(res==".." && !s.empty()){
s.pop_back();
}else if(res!=".."){
s.push_back(res);
}
}
res="";
for(int i=0;i<s.size();i++){
res+="/"+s[i];
}
return res.empty()?"/":res;
}
int main(){
string path,res;
cin>>path;
res=simplifyPath(path);
cout<<res;
return 0;
}