题目很长啊。。。
不过还是很好理解的。。。
pwd 表示输出。 cd 表示替换输出的的内容。
。。表示删除前一段 最后一个 / 后的内容。。。
不过在每个输出的结尾还要输出 /
我是以 / 为界限 将 / 之前的 内容 t = s[i]
如果 遇到 “ 。。“ 就删除。否则将 t 放到一个 v 内。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector <string> v;
string s, t;
int main ( ) {
int n, i;
cin >> n;
while ( n-- ) {
cin >> s;
if ( s == "pwd" ) {
for ( int i = 0; i < v.size ( ); ++i ) cout << "/" << v[i];
cout << "/" << endl;
}
else {
cin >> s;
i = 0;
if ( s[0] == '/' ) { v.clear ( ); i = 1; }
for ( ; i < s.size ( ); ++i ) {
t="";
for ( ; s[i] != '/' && i < s.size ( ); ++i ) t += s[i];
if ( t == ".." ) v.pop_back ( );
else v.push_back ( t );
}
}
}
}