• <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 閱讀(106) 評論(0)  編輯 收藏 引用 所屬分類: data struct

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久成人18免费网站| 国产精品狼人久久久久影院 | 久久91精品国产91| 伊人伊成久久人综合网777| 亚洲国产一成人久久精品| A狠狠久久蜜臀婷色中文网| 国内精品欧美久久精品| 亚洲午夜久久久久妓女影院| 婷婷综合久久狠狠色99h| 怡红院日本一道日本久久 | 99精品国产免费久久久久久下载 | 欧美精品乱码99久久蜜桃| 久久亚洲AV成人出白浆无码国产| 香蕉久久一区二区不卡无毒影院| 无码八A片人妻少妇久久| 7国产欧美日韩综合天堂中文久久久久 | 久久婷婷五月综合国产尤物app| 久久久国产精品亚洲一区| 欧美性猛交xxxx免费看久久久| 久久精品国产亚洲av麻豆色欲| 日本亚洲色大成网站WWW久久| 精品精品国产自在久久高清| 亚洲AV无码久久精品蜜桃| 伊人精品久久久久7777| 日日狠狠久久偷偷色综合0| 伊人丁香狠狠色综合久久| 国产亚洲欧美精品久久久| 少妇久久久久久久久久| 久久精品国产男包| 天堂无码久久综合东京热| 久久www免费人成精品香蕉| 亚洲天堂久久精品| 久久不射电影网| 一级做a爱片久久毛片| 91精品免费久久久久久久久| 久久99精品国产99久久| 亚洲天堂久久精品| 久久久久黑人强伦姧人妻| 久久亚洲天堂| 亚洲精品午夜国产VA久久成人 | 一本大道久久东京热无码AV |