题目描述
简化 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