首页 > 其他分享 >Unix路径化简(注意.和..的区别)

Unix路径化简(注意.和..的区别)

时间:2022-10-26 21:01:44浏览次数:45  
标签:化简 index .. while else Unix Input tmp


题目描述

简化 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;
}

 

标签:化简,index,..,while,else,Unix,Input,tmp
From: https://blog.51cto.com/u_13121994/5798515

相关文章