• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            PKU3856 deltree 模擬

            一次比賽里的題,模擬DOS里的dir、deltree命令,直接貼代碼了,這種題目就感覺到java的String類強大了,話說spilt方法似乎有點小bug。。用正則表達式表示多個prtten都不可以,不解。。貼代碼

              1import java.io.*;
              2import java.util.*;
              3class node
              4{
              5    HashMap<String,node> dir=new HashMap<String,node>();
              6    HashMap<String,Integer> file=new HashMap<String,Integer>();
              7    node per=null;
              8}
            ;
              9public class Main {
             10
             11    /**
             12     * @param args
             13     */

             14    static node head;
             15    static int total;
             16    static void del(node p)
             17    {
             18        Collection<node> dir=p.dir.values();
             19        Collection<Integer> tmp=p.file.values();
             20        for(Integer pos:tmp)
             21            total+=pos;
             22        for(node pos:dir)
             23            del(pos);
             24        p.dir.clear();
             25        p.file.clear();
             26        
             27    }

             28    public static void main(String[] args) throws IOException{
             29        BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
             30        while(true)
             31        {
             32            head=new node();
             33            String str=in.readLine();
             34            if(str.equals(">exit")) break;
             35            node p=head;
             36            total=0;
             37            while(true)
             38            {
             39                if(str.length()==0break;
             40                str=str.substring(1);
             41                if(str.startsWith("cd"))
             42                {
             43                    str=str.substring(3);
             44                    if(str.charAt(0)=='\\')
             45                    {
             46                        while(p!=head) p=p.per;
             47                        str=str.substring(1);
             48                    }

             49                    else if(str.charAt(0)=='.')
             50                    {
             51                        p=p.per;
             52                        str=str.substring(2);
             53                    }

             54                    if(str.length()!=0)
             55                    {
             56                        while(str.indexOf('\\')!=-1)
             57                        {
             58                            String t=str.substring(0,str.indexOf('\\'));
             59                            str=str.substring(str.indexOf('\\')+1);
             60                            if(p.dir.containsKey(t))
             61                                p=p.dir.get(t);
             62                            else
             63                            {
             64                                node tmp=new node();
             65                                tmp.per=p;
             66                                p.dir.put(t, tmp);
             67                                p=tmp;
             68                            }

             69                        }

             70                        if(p.dir.containsKey(str))
             71                            p=p.dir.get(str);
             72                        else
             73                        {
             74                            node tmp=new node();
             75                            tmp.per=p;
             76                            p.dir.put(str, tmp);
             77                            p=tmp;
             78                        }

             79                    }

             80                    
             81                    str=in.readLine();
             82                }

             83                else if(str.startsWith("dir"))
             84                {
             85                    while(true)
             86                    {
             87                        str=in.readLine();
             88                        if(str.length()==0||str.charAt(0)=='>'break;
             89                        String sp[]=str.split(" ");
             90                        if(sp.length==2)
             91                        {
             92                            if(!p.file.containsKey(sp[0]))
             93                                p.file.put(sp[0], Integer.parseInt(sp[1]));
             94                        }

             95                        else
             96                        {
             97                            if(!p.dir.containsKey(sp[0]))
             98                            {
             99                                node tmp=new node();
            100                                tmp.per=p;
            101                                p.dir.put(sp[0], tmp);
            102                            }

            103                        }

            104                    }

            105                }

            106                else
            107                {
            108                    str=str.substring(8);
            109                    if(str.charAt(0)=='\\')
            110                    {
            111                        while(p!=head) p=p.per;
            112                        str=str.substring(1);
            113                    }

            114                    while(str.indexOf('\\')!=-1)
            115                    {
            116                        String tmp=str.substring(0,str.indexOf('\\'));
            117                        str=str.substring(str.indexOf('\\')+1);
            118                        p=p.dir.get(tmp);
            119                    }

            120                    p=p.dir.get(str);
            121                    del(p);
            122                    str=in.readLine();
            123                    
            124                }

            125            }

            126            System.out.println(total);
            127        }

            128    }

            129
            130}

            131
            132

            posted on 2010-10-12 23:15 yzhw 閱讀(103) 評論(0)  編輯 收藏 引用 所屬分類: data struct

            <2011年1月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            国产成人久久激情91| 久久国产亚洲精品无码| 国产成人无码精品久久久免费 | 青青青国产精品国产精品久久久久| 久久久国产视频| 久久99亚洲网美利坚合众国| 国产精品久久久久乳精品爆| 久久久久久精品免费看SSS| 色欲综合久久躁天天躁蜜桃| 国产成人香蕉久久久久| 久久人人爽人人爽人人AV东京热| 久久精品国产秦先生| 亚洲?V乱码久久精品蜜桃 | 国内精品九九久久精品| 777米奇久久最新地址| 亚洲精品国产第一综合99久久| 99久久久精品免费观看国产| 亚洲国产精品成人AV无码久久综合影院| 久久夜色精品国产亚洲| 狠狠综合久久综合中文88| 麻豆一区二区99久久久久| 欧洲国产伦久久久久久久| 国产精品久久波多野结衣| 国产成人综合久久精品红| 国产2021久久精品| 99久久国产热无码精品免费| 久久精品国产精品亚洲精品| 精品久久久久久国产三级| 国内精品久久久久久野外| 欧美黑人又粗又大久久久| 久久天天躁狠狠躁夜夜2020一| 久久国产精品二国产精品| 99国产欧美精品久久久蜜芽| 亚洲国产精品成人久久| 2021国内精品久久久久久影院| 婷婷久久综合九色综合九七| 久久久久国产日韩精品网站| 99久久综合国产精品二区| 国产精品青草久久久久福利99 | 久久精品国产99久久久香蕉| 国产精品丝袜久久久久久不卡|