• <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久久久久久董美香| 国产免费久久久久久无码| 久久中文字幕无码专区| 亚洲国产欧洲综合997久久| 成人国内精品久久久久一区| 国产一区二区精品久久凹凸| 日韩乱码人妻无码中文字幕久久| 久久精品国产一区二区| 久久中文娱乐网| 亚洲欧美国产日韩综合久久| 亚洲嫩草影院久久精品| 久久亚洲春色中文字幕久久久 | 99久久精品免费| 亚洲成色www久久网站夜月| 日本久久久久久中文字幕| 老色鬼久久亚洲AV综合| 久久精品无码一区二区日韩AV| 老色鬼久久亚洲AV综合| 亚洲乱码日产精品a级毛片久久 | 久久综合色区| 久久精品国产精品亚洲精品| 色偷偷偷久久伊人大杳蕉| 国产精品成人精品久久久| 久久综合九色综合网站| 少妇被又大又粗又爽毛片久久黑人| 久久无码av三级| 精品久久久久久久久午夜福利| 久久久亚洲欧洲日产国码是AV | 久久精品人人做人人爽电影| 久久久久国色AV免费看图片| 久久91精品国产91久久户| 国产精品久久久久久福利漫画| 国产一区二区精品久久| 亚洲精品无码久久久久sm| 色综合久久中文字幕无码| 97久久综合精品久久久综合| 国产91色综合久久免费分享| 久久精品成人免费网站|