文章
25
粉丝
0
获赞
27
访问
1.4k
用的双端队列模拟栈,用数组也可以,只要最后能遍历
#include <bits/stdc++.h>
using namespace std;
int n;
string curPath;//当前路径
string s;
//处理绝对路径并输出
void dealWithAbsolutePathAndPrint(string& s){
deque<string> dq;//双端队列
string get_s;//获取每一次拿到的文件名
int last=0;//上一次斜杠位置
for(int now=1;now<s.size();now++){
if(s[now]=='/'){
get_s=s.substr(last+1,now-last-1);
if(get_s!=""&&get_s!="."){
//出队一个文件
if(get_s==".."){
if(!dq.empty())
dq.pop_back();
}
//入队一个文件
else
dq.push_back(get_s);
}
//更新位置
last=now;
}
}
for(string print_s:dq)
cout<<'/'<<print_s;
//仅有根目录
if(dq.empty())
cout<<'/';
cout<<endl;
}
int main(){
cin>>n;
cin>>curPath;
cin.igno...
登录后发布评论
暂无评论,来抢沙发