点击打开链接
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<cstring>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<limits.h>
#include<assert.h>
#include<sstream>
#define LL long long
#define inf 0x3f3f3f3f
#define mod 1e9+7
using namespace std;
class Solution {
public:
string simplifyPath(string path) {
string res,t;
stringstream ss(path);
vector<string> v;
while (getline(ss,t,'/')) {// 以/为间隔,分批次输入到t里面。
if(t==""||t==".") continue;//空的 或者.忽略
if(t==".."&&!v.empty()) v.pop_back(); //返回上一节
else if(t!="..") v.push_back(t); //有效的
}
for(int i=0;i<v.size();i++){
res+="/"+v[i];
}
return res.empty()? "/":res;
}
};
int main()
{
Solution temple;
string s="/a/./b/../../c/";
cout<<temple.simplifyPath(s)<<endl;
return 0;
}