操作系统的网课学得并不理想
样例输入
7
/d2/d3
/d2/d4/f1
…/d4/f1
/d1/./f1
/d1///f1
/d1/
///
/d1/…/…/d2
样例输出
/d2/d4/f1
/d2/d4/f1
/d1/f1
/d1/f1
/d1
/
/d2
解题思路
经典的读题半小时系列,输入的每一个相对路径可以看作找目标位置的一个过程,跟着每一句跑一遍把结果表示出来就行了。很能体现栈的思想,也依然是一个很适合用vector的题目,写起来简便看起来明白。
输入中每个‘/’字符后面的目录名字(或者理解为每个操作)在预处理的时候都挑出来,之后根据实际意义在vector里push或pop(因为都是在尾部操作,所以说体现了栈的思想)
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#define ll long long
using namespace std;
int p;
string s0;
vector<string> now;
void get_str(string s1,vector<string> &a)//预处理获取输入中的每个操作
{
int l = s1.length();
int i = 0,j = 0;
while(i < l)
{
j