• <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>

            pku3371 Flesch Reading Ease 字符串處理

            題目很羅嗦,說到底干三件事:
            1、統計句子的個數(以".:;!?"為分隔符),這個只要統計分隔符的個數即可
            2、統計單詞的個數,這個需要注意一點,不能僅僅以空格來spilt字符串,然后統計個數的方法。。只有除去標點符號后非空的patten才能算一個word
            3、統計音節的個數。
            1. -es, -ed and -e (except -le) endings are ignored, (末尾以es、ed、e(并且倒數第二個字母不是l)結束的部分不算在內)
            2. words of three letters or shorter count as single syllables, (字母個數(不是patten的長度,應為可能有apple-pile這種類型的復合詞)小于3的單詞都算一個音節,不一定要包括aeiouy)
            3. consecutive vowels count as one syllable.(連續的音標算一個音節)

            所以,最好在統計前將patten內的所有標點符號都去除掉
            代碼:

             1Source Code
             2
             3Problem: 3371  User: yzhw 
             4Memory: 3004K  Time: 313MS 
             5Language: Java  Result: Accepted 
             6
             7Source Code 
             8import java.io.*;
             9public class Main {
            10
            11    /**
            12     * @param args
            13     */

            14    static boolean IsSyllable(char ch)
            15    {
            16        switch(ch)
            17        {
            18        case 'a':return true;
            19        case 'e':return true;
            20        case 'i':return true;
            21        case 'o':return true;
            22        case 'u':return true;
            23        case 'y':return true;
            24        default:return false;
            25        }

            26    }

            27    public static void main(String[] args) throws IOException{
            28        BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
            29        int sen=0,word=0,syl=0;
            30        while(true)
            31        {
            32            String tmp=in.readLine();
            33            if(tmp==nullbreak;
            34            String tok[]=tmp.split(" ");
            35            for(int snum=0;snum<tok.length;snum++)
            36            {
            37                String str=tok[snum].toLowerCase();
            38                while(!str.isEmpty()&&!Character.isLetter(str.charAt(0)))
            39                {
            40                    switch(str.charAt(0))
            41                    {
            42                    case '.':sen++;break;
            43                    case '?':sen++;break;
            44                    case '!':sen++;break;
            45                    case ':':sen++;break;
            46                    case ';':sen++;break;
            47                    }
            ;
            48                    str=str.substring(1);
            49                }

            50                while(!str.isEmpty()&&!Character.isLetter(str.charAt(str.length()-1)))
            51                {
            52                    switch(str.charAt(str.length()-1))
            53                    {
            54                        case '.':sen++;break;
            55                        case '?':sen++;break;
            56                        case '!':sen++;break;
            57                        case ':':sen++;break;
            58                        case ';':sen++;break;
            59                    }
            ;
            60                    str=str.substring(0, str.length()-1);
            61                }

            62                for(int i=0;i<str.length();i++)
            63                {
            64                   if(!Character.isLetter(str.charAt(i)))
            65                       str=str.substring(0,i)+str.substring(i+1);
            66                }

            67                if(!str.isEmpty()) word++;
            68                else continue;
            69                int end=str.length();
            70                if(str.endsWith("es")||str.endsWith("ed")) end-=2;
            71                else if(str.endsWith("e")&&!str.endsWith("le")) end--;
            72                if(str.length()<=3)
            73                {
            74                    syl++;
            75                }

            76                else
            77                    for(int i=0;i<end;i++)
            78                        if(i==0&&IsSyllable(str.charAt(i))||i!=0&&!IsSyllable(str.charAt(i-1))&&IsSyllable(str.charAt(i)))
            79                            syl++;
            80            }

            81        }

            82        //System.out.println(sen+" "+word+" "+syl);
            83        System.out.printf("%.2f\n"206.835-1.015*word/sen-84.6*syl/word);
            84
            85    }

            86
            87}

            88
            89

            posted on 2011-01-06 23:26 yzhw 閱讀(542) 評論(0)  編輯 收藏 引用 所屬分類: string algorithm

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

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久国产精品99精品国产987| 久久国产成人精品麻豆| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 97超级碰碰碰碰久久久久| 久久精品无码一区二区三区| 久久精品无码一区二区三区日韩| 久久亚洲国产精品123区| 香蕉久久影院| 伊人久久综在合线亚洲2019 | 久久久九九有精品国产| 精品久久久久一区二区三区 | 人人狠狠综合88综合久久| 久久久精品人妻一区二区三区蜜桃 | 久久福利青草精品资源站| 青青草原综合久久大伊人导航| 日日躁夜夜躁狠狠久久AV| 国产成人AV综合久久| 国产69精品久久久久APP下载 | 亚洲精品视频久久久| 国产精品美女久久久m| 亚洲精品视频久久久| 成人亚洲欧美久久久久 | 久久精品无码专区免费| 国产精品免费福利久久| 丁香色欲久久久久久综合网| 老男人久久青草av高清| 国产农村妇女毛片精品久久| 99999久久久久久亚洲| 亚洲中文字幕久久精品无码APP| 青春久久| 亚洲色大成网站WWW久久九九| 久久夜色精品国产噜噜亚洲a| 亚洲欧洲精品成人久久曰影片| 人妻中文久久久久| 久久一本综合| 日韩十八禁一区二区久久| 超级97碰碰碰碰久久久久最新 | 久久久婷婷五月亚洲97号色| 偷窥少妇久久久久久久久| 思思久久好好热精品国产| 午夜精品久久久久|