Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 3255 | Accepted: 2112 |
Description
Input
Output
Sample Input
7 2 administer 100000 spending 200000 manage 50000 responsibility 25000 expertise 100 skill 50 money 75000 the incumbent will administer the spending of kindergarden milk money and exercise responsibility for making change he or she will share responsibility for the task of managing the money with the assistant whose skill and expertise shall ensure the successful spending exercise . this individual must have the skill to perform a heart transplant and expertise in rocket science .
Sample Output
700150 150
此题需要注意:
1.可能出现多个单词重复计数,因此最好对字符串进行遍历
2.注意前后的空格,以及单词中间的多个空格。
import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); String[] fLine = cin.nextLine().split(" "); int kwNum = Integer.valueOf(fLine[0]).intValue(); int descNum = Integer.valueOf(fLine[1]).intValue(); HashMap hm = new HashMap(); for(int i = 0; i < kwNum; i++) { String[] str = cin.nextLine().split(" "); hm.put(str[0], str[1]); } for(int i = 0; i < descNum; i++) { StringBuffer sb = new StringBuffer(); String job = null; int salary = 0; while(true) { job = cin.nextLine(); if(job.equals(".")) break; else sb.append(job + " "); } job = sb.toString().trim(); if(job.length() == 0) { System.out.println("0"); continue; } int eIndex = 0; String word = null; while(true) { eIndex = job.indexOf(" "); if(eIndex == -1 || eIndex == 0) { if(hm.containsKey(job)) salary += Integer.valueOf((String)hm.get(job)); break; } word = job.substring(0, eIndex); job = job.substring(eIndex + 1).trim(); if(hm.containsKey(word)) salary += Integer.valueOf((String)hm.get(word)); } System.out.println(salary); } } }