posts - 12,  comments - 7,  trackbacks - 0

          /**Problem
          大寫字母A-Z分別對應整數(shù)[-13,12],因此,一個字符串對應了一個整數(shù)列。我們把字符串對應的整數(shù)列的和稱為該字符串的特性值。例如:字符串ACM對應的整數(shù)列為{-13,-11,-1},則ACM的特性值為(-13)+(-11)+(-1)=-25;其子串AC的特性值為-24;子串M的特性值為-1。

          給你一個字符串,請找出該字符串的所有子串的最大特性值。

          Input
          第一行的正整數(shù) N(1<=N<=1000)表示其后有N組測試數(shù)據(jù),每組測試數(shù)據(jù)都由一個字符串組成。字符串只能由大寫字母A-Z組成,且字符串的長度不會超過1000。

          Output
          輸出有N行,每行是一組測試數(shù)據(jù)的輸出結果。
          */
                 

            1import java.util.*;
            2import java.io.*;
            3
            4public class StringTraitNumberTest
            5{
            6    public static void main(String[] args)throws IOException
            7    {
            8        System.out.print("Please enter a number:");
            9        BufferedReader inn = new BufferedReader(new InputStreamReader(System.in));
           10        int n = Integer.parseInt(inn.readLine());
           11
           12        System.out.println("Please enter "+n+" groups up char line:");
           13        Scanner in = new Scanner(System.in);
           14        StringTraitNumber stn = new StringTraitNumber(n);
           15        int j = 0;
           16        while(true)
           17        {
           18            
           19            String k = in.nextLine();
           20            stn.startSeek(k,j);
           21            j++;
           22            if(j >= n)
           23                break;
           24        }

           25        stn.print();
           26    }

           27}

           28
           29class StringTraitNumber
           30{
           31    public StringTraitNumber(int n)
           32    {
           33        size = n;
           34        sum = new int[size];
           35    }

           36
           37    public void startSeek(String k,int j)
           38    {
           39        boolean tag = false;
           40        int max = Integer.MIN_VALUE;
           41        for(int i = 0;i < k.length();i++)
           42        {
           43            if((int)k.charAt(i) > 77)
           44            {
           45                tag = true;
           46                break;
           47            }

           48            if(max < (int)k.charAt(i))
           49                max = (int)k.charAt(i);
           50        }

           51        if(!tag)
           52        {
           53            switch(max)
           54            {
           55            case 'A':
           56                sum[j] += -13;
           57                break;
           58            case 'B':
           59                sum[j] += -12;
           60                break;
           61            case 'C':
           62                sum[j] += -11;
           63                break;
           64            case 'D':
           65                sum[j] += -10;
           66                break;
           67            case 'E':
           68                sum[j] += -9;
           69                break;
           70            case 'F':
           71                sum[j] += -8;
           72                break;
           73            case 'G':
           74                sum[j] += -7;
           75                break;
           76            case 'H':
           77                sum[j] += -6;
           78                break;
           79            case 'I':
           80                sum[j] += -5;
           81                break;
           82            case 'J':
           83                sum[j] += -4;
           84                break;
           85            case 'K':
           86                sum[j] += -3;
           87                break;
           88            case 'L':
           89                sum[j] += -2;
           90                break;
           91            case 'M':
           92                sum[j] += -1;
           93                break;
           94            default:
           95                sum[j] += 0;
           96                break;
           97            }

           98        }

           99        else
          100            for(int i = 0;i < k.length();i++)
          101            {
          102                switch(k.charAt(i))
          103                {
          104                case 'N':
          105                    sum[j] += 0;
          106                    break;
          107                case 'O':
          108                    sum[j] += 1;
          109                    break;
          110                case 'P':
          111                    sum[j] += 2;
          112                    break;
          113                case 'Q':
          114                    sum[j] += 3;
          115                    break;
          116                case 'R':
          117                    sum[j] += 4;
          118                    break;
          119                case 'S':
          120                    sum[j] += 5;
          121                    break;
          122                case 'T':
          123                    sum[j] += 6;
          124                    break;
          125                case 'U':
          126                    sum[j] += 7;
          127                    break;
          128                case 'V':
          129                    sum[j] += 8;
          130                    break;
          131                case 'W':
          132                    sum[j] += 9;
          133                    break;
          134                case 'X':
          135                    sum[j] += 10;
          136                    break;
          137                case 'Y':
          138                    sum[j] += 11;
          139                    break;
          140                case 'Z':
          141                    sum[j] += 12;
          142                    break;
          143                default:
          144                    sum[j] += 0;
          145                    break;
          146                }

          147            }

          148    }

          149
          150    public void print()
          151    {
          152        System.out.println("The answer is:");
          153        for(int i = 0;i < size;i++)
          154            System.out.println(sum[i]);
          155    }

          156
          157    private int[] sum;
          158    private int size;
          159}
          posted on 2007-12-22 18:15 Jun Woo 閱讀(680) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          <2007年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          愛好者!邊學邊練,勇往直前!大家精誠合作,一起進步,由成為.以后好吃好耍好

          常用鏈接

          留言簿(1)

          隨筆檔案

          相冊

          搜索

          •  

          積分與排名

          • 積分 - 10482
          • 排名 - 2345

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 青铜峡市| 双桥区| 奉新县| 综艺| 宜昌市| 巴中市| 苏州市| 鹤峰县| 洪雅县| 扎囊县| 延川县| 思南县| 庆云县| 天津市| 腾冲县| 四子王旗| 新平| 砀山县| 库车县| 淳安县| 定边县| 仁化县| 阿克苏市| 贺州市| 广河县| 鸡东县| 翁源县| 开阳县| 绥中县| 泰顺县| 修水县| 将乐县| 六安市| 新建县| 广丰县| 秦皇岛市| 奇台县| 永善县| 宜黄县| 乐都县| 亚东县|