public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> words = new ArrayList<String>();
for (int i = 0; i < 4; i++) {
words.add(reader.readLine());
}
Map<String, Integer> map = countWords(words);
for (Map.Entry<String, Integer> pair : map.entrySet()) {
System.out.println(pair.getKey() + " " + pair.getValue());
}
}
public static Map<String, Integer> countWords(ArrayList<String> list) {
int count = 0;
HashMap<String, Integer> result = new HashMap<String, Integer>();
for (int i = 0; i < list.size(); i ++){
for (int j = 1; j < list.size(); j++) {
if (list.get(i).equals(list.get(j))) {
count++;
}
}Александр
20 уровень
Помогите решить, избежать повторений
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Кедель Михаил
16 июля 2018, 12:07
вот короткое решение без повторений,но через стримы :D
0
АлександрExpert
16 июля 2018, 20:50
Спасибо! Но я просто понять хочу))
0
Артем DivertittoSenior Android-разработчи в United TechMaster
16 июля 2018, 11:18решение
1. Ты же один и тот же элемент учитывать несколько раз, используй j = i + 1;
Когда цикл внутренний выполнился, после него добавь проверку - если в HashMap слова такого нет, то добавляешь его и count в этот result.
И послt проверки обнуляешь count. Который изначально должен быть 1! Потому что как минимум одно слово попадается 1 раз
+2
АлександрExpert
16 июля 2018, 20:54
если containcKay то {}
иначе result.put
так с проверкой?
0
АлександрExpert
16 июля 2018, 21:43
Спасибо решил, какая то сложная задача
0