【HRBUST - 1371】 大模拟

一个简单的模拟竟然看不懂,我太菜了。

题目:Leyni OS HRBUST - 1371
链接: http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1371
题意:

共有两种操作。一种 pwd 打印路径,第二种 cd + 路径,对已有的路径进行更改,(注意路径格式)

题解:

模拟大法,水题
注意格式

  • /x/y/z
  • /x/y/z/
  • x/y/z
  • x/y/z/
#include 
#include 
#include 
using namespace std;
struct node{
    string s;
}s[2000];//4000有点大
void init(){//初始化
    for(int i=0;i<2000;i++){
        s[i].s="";
    }
}
int main(){
    int T;
    scanf("%d",&T);
    while(T--){
        int N,cnt=0;
        scanf("%d",&N);
        init();
        while(N--){
            string oper;
            cin>>oper;
            if(oper=="pwd"){
                for(int i=0;i>t;
                /* *
                 * 大坑:
                 * /x/x  需要对目录进行重新读取
                 * x/x/ 或者 /x/x/ 对目录进行重置
                 * */
                if(t[t.length()-1]=='/'){
                    init();cnt=0;
                    continue;
                }
                else t+="/";
                if(t[0]=='/'){
                    init();cnt=0;
                }
                else{
                    t='/'+t;
                }
                //把所有命令符都加载为/x/y/z/,进行模拟操作
                for(int i=0;i

你可能感兴趣的:(【HRBUST - 1371】 大模拟)