1. 程式人生 > >藍橋杯java 算法提高 統計單詞數

藍橋杯java 算法提高 統計單詞數

tle 英文 () pos pri keys next med cas

問題描述   統計輸入英文文章段落中不同單詞(單詞有大小寫之分,但統計時忽略大小寫)各自出現的次數。 輸入段落中所含單詞的總數不超過100,最長單詞的長度不超過20個字母. 輸入格式   一個包含若幹句子的段落, 每個句子由若幹英文單詞組成. 除空格,逗號和句號外, 這些輸入的句子中不含其他非字母字符, 並且, 逗號和句號緊跟在它前面的英文單詞後面, 中間沒有空格. 段落最後一個字符是回車符,表示輸入結束. 輸出格式   若段落中共有M個不同的英文單詞,則按照其在段落中出現的先後順序輸出M行,各行的格式為:  單詞中所有字母均用大寫形式輸出(最長的單詞頂格輸出,它前面沒有多余的空格;其余單詞與其右對齊)+冒號+N個*號+該單詞在段落中的出現次數N 樣例輸入
This is a test. This test is easy. This is a test. This test is easy.

樣例輸出

THIS:****4
IS:****4
A:**2
TEST:****4
EASY:**2

 1 import java.util.LinkedHashMap;
 2 import java.util.Map;
 3 import java.util.Scanner;
 4 
 5 public class Main{
 6     static int n;
 7     static int h;
 8     public static void main(String[] args) {
 9         Scanner input = new Scanner(System.in);
10 String a = input.nextLine(); 11 String[] b = a.split(" |, |\\. |\\."); 12 Map<String, Integer> m = new LinkedHashMap(); 13 for(int i=0;i<b.length;i++){ 14 b[i] = b[i].toLowerCase(); 15 } 16 for(int i=0;i<b.length;i++){ 17 if
(m.containsKey(b[i])){ 18 m.put(b[i], m.get(b[i])+1); 19 }else{ 20 m.put(b[i], 1); 21 } 22 } 23 for(String s: m.keySet()){ 24 System.out.print(s.toUpperCase()+":"); 25 for(int i=0;i<m.get(s);i++){ 26 System.out.print("*"); 27 } 28 System.out.println(m.get(s)); 29 } 30 } 31 }

 

藍橋杯java 算法提高 統計單詞數