ForceBook 90 точки! Java
Последният тест гърми.Търсих, но така и ненамерих грешката.Все пак мисля ,че е при "->" тази проверка ..
Ще се радвам ако някой може да помогне !
Код: https://pastebin.com/mgE8X5Ha
Последният тест гърми.Търсих, но така и ненамерих грешката.Все пак мисля ,че е при "->" тази проверка ..
Ще се радвам ако някой може да помогне !
Код: https://pastebin.com/mgE8X5Ha
Здравей колега
Опитах се да проследя решението ти, но се омотах тотално в него. Създал си много списъци и си извършил много действия, които не са необходими. Това което направих е, запазвайки логиката на твоето решение, да съкратя значително написаният код. Тествах новото решение - минава в Judge с 100/100. По-долу ще обясня подробно какво съм променил или съкратил. Ако това те устройва добре, ако ли не, някой по-умел от мен ще трябва да ти отговори, какво точно се "чупи" в твоето решение.
Това е оптимизираният от мен код:
Така, първо промених мапът от HashMap на TreeMap, защото в него ключовете са сортирани. Съществените промени, които направих са в switch - конструкцията. Използвам цикъл, за да премина през мапът и да проверя дали името на дадения играч съществува. В case "|" просто отбелязвам true (ако съществува), в case "->" директно премахвам името. След което и в двата кейса изпалзвам if - else if конструкция, за да проверя дали съответната страна съществува, ако не съществува добавям страната в ключовете, и създавам нов new ArrayList<>(), който съответства на този ключ, и в който ще се съхраняват имената. След това просто добавям име. Мисля, че оптимизираният код ще ти свърши работа.
Успех!
Благодаря за помощта !! Прав си за решението , че е малко уплетено , но в момента ги свиквам тези масиви , че попринцип са си труднички !!
Здравей Vl.Metodiev,
Може ли да обясниш защо правиш двойна проверка дали User е наличен.
С двойна проверка работи де. Но не мога да си го обясня защо.
for (Map.Entry<String, List<String>> current : webSide.entrySet()) {
if (current.getValue().contains(user)) {
webSide.get(current.getKey()).remove(user);
break;
}
}
else if (webSide.containsKey(whichSide) && !webSide.get(whichSide).contains(user))