Unix路径简化

阅读 59

2022-10-26


题目描述

简化 Unix 风格的路径,需要考虑的包括 "/../", "//", "/./" 等情况

输入描述:


Unix 风格的路径


输出描述:


简化后的Unix 风格路径


示例1

输入

复制


/a/./b/../../c/


输出

复制


/c


#include<iostream>
#include<string>
#include<stack>

using namespace std;

int main(){
string Input;
cin >> Input;
int index = 0;
stack<string> S;
while(index < Input.length()){
while(Input[index] == '/'){
index++;
}
string tmp = "";
while(index < Input.length() && Input[index] != '/'){
tmp += Input[index];
index++;
}
if(tmp == "."){
continue;
}
else if(tmp == ".."){
if(!S.empty()){
S.pop();
}
else{continue;}
}
else if(tmp.length() != 0){
S.push(tmp);
}
}
string Result = "";
if(S.empty()){
Result = "/";
}
else{
while(!S.empty()){
Result = "/" + S.top() + Result;
S.pop();
}
}
cout << Result << endl;
return 0;
}

 

精彩评论(0)

0 0 举报