#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
int num;
string curDir;
vector<string> list;
cin>>num>>curDir;
cin.ignore();
for(int i=0; i<num; i++){
string line;
getline(cin,line);
if(line == ""){
list.push_back(curDir); continue;
}
int pos;
// 除去多个///
while( (pos=line.find("//"))!=-1 ){
int count = 2;
while(line[pos+count]=='/'){
count++;
}
line.erase(pos,count-1);
}
// 除去../
while( (pos=line.find("../"))!=-1 ){
if(line[0]=='/'){
if(pos==1){
line.erase(pos,3);
}else{
int spos;
spos = line.rfind("/",pos-2);//相当于倒着找上一个/,然后整体删除
line.erase(spos,pos-spos+2);
}
}else{
line = curDir+"/"+line;
}
//cout <<" line = " << line << endl;
}
// 除去./
while( (pos=line.find("./"))!=-1 ){
line.erase(pos,2);
}
if(line.size()>1 && line[line.size()-1]=='/')
line.erase(line.size()-1);
list.push_back(line);
}
for(int j=0; j<num; j++){
cout<<list[j]<<endl;
}
return 0;
}
ccf字符串题
最新推荐文章于 2018-12-14 20:26:52 发布