fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.InputStreamReader;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8.  
  9. /* Одинаковые слова в списке
  10. Ввести с клавиатуры в список 20 слов. Нужно подсчитать количество одинаковых слов в списке.
  11. Результат нужно представить в виде словаря Map<String, Integer>, где первый параметр – уникальная строка,
  12. а второй – число, сколько раз данная строка встречалась в списке.
  13. Вывести содержимое словаря на экран.
  14. В тестах регистр (большая/маленькая буква) влияет на результат.
  15. */
  16.  
  17. class Solution
  18. {
  19. public static void main(String[] args) throws Exception
  20. {
  21.  
  22. ArrayList<String> words = new ArrayList<String>();
  23. for (int i = 0; i < 20; i++)
  24. {
  25. words.add(reader.readLine());
  26. }
  27.  
  28. Map<String, Integer> map = countWords(words);
  29.  
  30. for (Map.Entry<String, Integer> pair : map.entrySet())
  31. {
  32. System.out.println(pair.getKey() + " " + pair.getValue());
  33. }
  34. }
  35.  
  36. public static Map<String, Integer> countWords(ArrayList<String> list)
  37. {
  38. HashMap<String, Integer> result = new HashMap<String, Integer>();
  39.  
  40. for (int z = 0; z<list.size();z++ ){
  41. String temp = list.get(z);
  42. int kol = 1;
  43. if (list.size()>1)
  44. {
  45. for (int b = z + 1; b < list.size(); )
  46. {
  47. String temp2 = list.get(b);
  48. if (temp2.equals(temp))
  49. {
  50. kol++;
  51. }
  52. else b++;
  53. }
  54. }
  55. result.put(temp, kol);
  56. }
  57. return result;
  58. }
  59. }
Time limit exceeded #stdin #stdout 5s 1372672KB
stdin
слово-1
слово-1
слово-3
слово-4
слово-5
слово-6
слово-7
слово-8
слово-9
слово-10
слово-11
слово-12
слово-13
слово-14
слово-15
слово-16
слово-17
слово-18
слово-19
слово-20
слово-21
stdout
Standard output is empty