• <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命令,直接貼代碼了,這種題目就感覺到j(luò)ava的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

            <2010年10月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導(dǎo)航

            統(tǒng)計

            公告

            統(tǒng)計系統(tǒng)

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            91久久精品国产91性色也| 欧美久久综合九色综合| 精品久久久久久亚洲精品| 欧美丰满熟妇BBB久久久| 免费国产99久久久香蕉| 精品国产乱码久久久久软件| 久久综合给合久久狠狠狠97色| 99久久婷婷国产一区二区| 午夜福利91久久福利| 久久免费精品视频| 精品国产乱码久久久久软件| 青青国产成人久久91网| 无码日韩人妻精品久久蜜桃| 久久久久九九精品影院| 狠狠色婷婷久久一区二区三区| 久久免费香蕉视频| 国产AV影片久久久久久 | 九九热久久免费视频| 无码国内精品久久人妻蜜桃| 久久久久亚洲AV综合波多野结衣 | 久久久久久精品免费免费自慰| 成人a毛片久久免费播放| 久久ZYZ资源站无码中文动漫| 久久综合伊人77777| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久亚洲国产精品一区二区| 久久夜色精品国产噜噜噜亚洲AV| 污污内射久久一区二区欧美日韩| 久久这里只精品国产99热| 久久久久99精品成人片欧美| 18岁日韩内射颜射午夜久久成人| 伊人久久五月天| 伊人久久精品影院| 综合久久一区二区三区| 怡红院日本一道日本久久| 久久香蕉综合色一综合色88| 久久91亚洲人成电影网站| 亚洲狠狠久久综合一区77777| 国产午夜精品久久久久免费视| 久久精品人人做人人爽电影蜜月| 亚洲AV无码久久|