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

            PKU 3332 Parsing Real Numbers 解題

            很煩人的字符串處理。
            需要考慮的東西很多
            用c++寫比較麻煩。
            自己用c++寫的wa了3次才過。
            java的話直接正則表達(dá)式就可以了
            下面分別有c++和java的代碼
            c++的代碼屬于自己原創(chuàng)
            java是轉(zhuǎn)來別人的了

             1#include<stdio.h>
             2int main()
             3{
             4    int KASE,f;
             5    char ch;
             6    scanf("%d",&KASE);
             7    scanf("%c",&ch);
             8    while(KASE--)
             9    {
            10        f=0;
            11        while(scanf("%c",&ch))
            12        {
            13            if(ch==10)break;
            14            while(ch==' ')
            15            {
            16                scanf("%c",&ch);
            17                if(ch==10)break;
            18            }

            19            if(ch==10)break;
            20            if(ch=='+'||ch=='-')scanf("%c",&ch);
            21            if(ch>='0' && ch<='9')f=1;
            22                    //    printf("%d\n",f);
            23            while(ch>='0' && ch<='9')
            24            {
            25                scanf("%c",&ch);
            26                if(ch==10)break;
            27            }

            28            if(ch==10)break;
            29            if(!f)goto abc;
            30            if(ch!='.' && ch!='e' && ch!='E'){f=0;goto abc;}
            31            if(ch=='.')
            32            {
            33                //printf("asdasdas");
            34                f=0;scanf("%c",&ch);
            35                if(ch==10)break;
            36                if(ch>='0' && ch<='9')f=1;
            37                while(ch>='0' && ch<='9')
            38                {
            39                    scanf("%c",&ch);
            40                    if(ch==10)break;
            41                }

            42            }

            43            if(!f)goto abc;
            44            if(ch==10)break;
            45            if(ch!='e'&&ch!='E'){f=0;goto abc;}
            46            if(ch=='e'||ch=='E')
            47            {
            48                f=0;scanf("%c",&ch);
            49                if(ch==10)break;
            50                if(ch=='+'||ch=='-')scanf("%c",&ch);
            51                if(ch==10)break;
            52                if(ch>='0' && ch<='9')f=1;
            53                while(ch>='0' && ch<='9')
            54                {
            55                    scanf("%c",&ch);
            56                    if(ch==10)break;
            57                }

            58                if(ch!=10)f=0;
            59                if(ch==10)break;
            60            }

            61            if(ch==10)break;
            62abc:        while(scanf("%c",&ch))if(ch==10)break;
            63            if(ch==10)break;
            64        }

            65        if(f)printf("LEGAL\n");
            66        else printf("ILLEGAL\n");
            67    }

            68    return 0;
            69}

            70


            java代碼轉(zhuǎn)自http://hi.baidu.com/ecchi/blog/item/822201247e8a2d29d40742ad.html
             1import java.util.regex.*;
             2import java.util.*;
             3
             4public class Main {
             5      public static void main(String[] args){
             6          String str;
             7          int n;
             8          Scanner cin = new Scanner(System.in);
             9          n=cin.nextInt();
            10          str=cin.nextLine();
            11          Pattern pattern = Pattern.compile("(\\s)*(\\+|\\-)?(\\d)+(\\.(\\d)+)?((e|E)(\\+|\\-)?(\\d)+)?");
            12          int i;
            13          for(i=0;i< n;++i){
            14              str=cin.nextLine();
            15              Matcher matcher = pattern.matcher(str);
            16              if(matcher.matches()){
            17                  System.out.println("LEGAL");
            18              }

            19              else{
            20                  System.out.println("ILLEGAL");
            21              }

            22          }

            23      }

            24}

            25

            posted on 2008-07-16 14:45 gong 閱讀(368) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


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

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(6)

            隨筆檔案

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            嫩草伊人久久精品少妇AV| 偷窥少妇久久久久久久久| 婷婷久久综合九色综合绿巨人 | 久久亚洲欧美国产精品| 久久精品这里只有精99品| a级毛片无码兔费真人久久| 久久免费美女视频| 无码任你躁久久久久久老妇App| 久久夜色撩人精品国产小说| 久久国产乱子伦精品免费强| 久久精品极品盛宴观看| 久久婷婷五月综合国产尤物app| 亚洲国产成人精品久久久国产成人一区二区三区综 | 蜜桃麻豆WWW久久囤产精品| 久久精品一本到99热免费| 亚洲AV无码1区2区久久| .精品久久久麻豆国产精品| 国产精品女同一区二区久久| 93精91精品国产综合久久香蕉| 久久婷婷五月综合色99啪ak| 日本久久中文字幕| 亚洲综合精品香蕉久久网97| 亚洲狠狠久久综合一区77777| 欧美激情精品久久久久久久九九九| 久久狠狠爱亚洲综合影院| 香蕉久久一区二区不卡无毒影院| 亚洲欧美久久久久9999| 国产成年无码久久久久毛片 | 久久青青草原精品国产| 欧美一区二区三区久久综合 | 国产精品亚洲美女久久久| 三级三级久久三级久久| 99精品伊人久久久大香线蕉| 久久久久99精品成人片三人毛片 | 欧美精品福利视频一区二区三区久久久精品 | 免费无码国产欧美久久18| 93精91精品国产综合久久香蕉 | 久久99精品久久久大学生| 国产精品欧美久久久久天天影视| 亚洲欧美日韩中文久久| 日韩久久久久中文字幕人妻|