emu in blogjava

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks


          Problem Statement
          ????
          A company stores sales data in a single, cumbersome file. Each line of the file represents one sale and is formatted as:
              CLIENT_ID CNT_1 PRODUCT_1 CNT_2 PRODUCT_2 ...
          This indicates that CNT_1 units of PRODUCT_1 were sold to the client whose id is CLIENT_ID, and CNT_2 units of PRODUCT_2 and so on. You have been tasked with figuring out how many units of a particular product have been sold over time to a particular client. You will be given a String[] sales, a String, client, and a String, product. You are to return an int representing how many units of product were sold to client in sales.
          Definition
          ????
          Class:
          SalesFigures
          Method:
          getCount
          Parameters:
          String[], String, String
          Returns:
          int
          Method signature:
          int getCount(String[] sales, String client, String product)
          (be sure your method is public)
          ????

          Constraints
          -
          sales will contain between 1 and 50 elements, inclusive.
          -
          Each element of sales will be formatted as described in the problem statement, with at least 1 product and at most 50 characters.
          -
          CLIENT_ID and each PRODUCT_* will contain between 1 and 10 uppercase letters ('A'-'Z'), inclusive.
          -
          Each CNT_* will represent an integer between 1 and 999, inclusive, with no leading zeros.
          -
          client will contain between 1 and 10 uppercase letters ('A'-'Z'), inclusive.
          -
          product will contain between 1 and 10 uppercase letters ('A'-'Z'), inclusive.
          Examples
          0)

          ????
          {"BOB 1 SHOE",
           "JOHN 2 SHOE",
           "BOB 3 SHOE 1 HORSE"}
          "BOB"
          "SHOE"
          Returns: 4

          1)

          ????
          {"MEG 1 TV 1 VCR 10 DVD 3 DVD",
           "HARRY 2 TV 6 DVD",
           "MEG 11 DVD",
           "MEG 2 TV",
           "HARRY 101 DVD"}
          "MEG"
          "DVD"
          Returns: 24
          Note that "DVD" occurs twice in the first element.
          2)

          ????
          {"GEORGE 999 PETS"}
          "BOB"
          "SHOE"
          Returns: 0

          This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved.

          posted on 2005-08-23 15:04 emu 閱讀(916) 評論(1)  編輯  收藏 所屬分類: google編程大賽模擬題及入圍賽真題

          評論

          # emu的解法 2005-08-23 15:11 emu

          import java.util.*;
          public class SalesFigures {
             
              public static void main(String[] args)
              {
                  String[] sales =   {"GEORGE 999 PETS"};
                  // CLIENT_ID CNT_1 PRODUCT_1 CNT_2 PRODUCT_2 ...
                  String client = "BOB";
                  String product = "SHOE";
                  System.out.println(new SalesFigures().getCount(sales,client,product));

              }

              public int getCount(String[] sales, String client, String product){
                  HashMap salesHsmp = new HashMap();
                  for (int i=0;i<sales.length;i++){
                      String[] saleDetail = sales[i].split(" ");
                      String clientName = saleDetail[0];
                      if (!salesHsmp.containsKey(clientName)) salesHsmp.put(clientName,new HashMap());
                      HashMap clientHsmp = (HashMap)salesHsmp.get(clientName);
                      for (int j=1;j<saleDetail.length;j+=2){
                          int unit = Integer.parseInt(saleDetail[j],10);
                          String tmpProduct = saleDetail[j+1];
                          if (clientHsmp.containsKey(tmpProduct)){
                              Integer productUnit = (Integer)clientHsmp.get(tmpProduct);
                              unit += productUnit.intValue();
                          }
                          clientHsmp.put(tmpProduct,new Integer(unit));
                      }
                  }
                  HashMap clientHsmp = (HashMap)salesHsmp.get(client);
                  if (clientHsmp == null) return 0;
                  Integer unitInteger = (Integer)clientHsmp.get(product);
                  return unitInteger==null?0:unitInteger.intValue();
              }

             
          }
            回復  更多評論
            

          主站蜘蛛池模板: 陈巴尔虎旗| 松溪县| 灌阳县| 那坡县| 蓬溪县| 于都县| 东乌珠穆沁旗| 沾化县| 芜湖县| 威信县| 隆安县| 靖州| 东乡县| 凤庆县| 瑞金市| 错那县| 绥中县| 离岛区| 岑溪市| 托里县| 安西县| 政和县| 甘洛县| 秦皇岛市| 湘西| 焦作市| 汝城县| 锡林郭勒盟| 长兴县| 商洛市| 宁海县| 喜德县| 扶余县| 兴海县| 开鲁县| 永胜县| 建始县| 沙湾县| 金门县| 中西区| 龙游县|