0
点赞
收藏
分享

微信扫一扫

Unix路径简化


题目描述

简化 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 条评论