Loading...
Val3ntinV avatar Val3ntinV 20 Точки

ForceBook 90 точки! Java

Последният тест гърми.Търсих, но така и ненамерих грешката.Все пак мисля ,че е при "->" тази проверка ..

Ще се радвам ако някой може да помогне !

Код: https://pastebin.com/mgE8X5Ha

Тагове:
0
Fundamentals Module
Vl.Metodiev avatar Vl.Metodiev 54 Точки
Best Answer

Здравей колега

 

Опитах се да проследя решението ти, но се омотах тотално в него. Създал си много списъци и си извършил много действия, които не са необходими. Това което направих е, запазвайки логиката на твоето решение, да съкратя значително написаният код. Тествах новото решение - минава в Judge с 100/100. По-долу ще обясня подробно какво съм променил или съкратил. Ако това те устройва добре, ако ли не, някой по-умел от мен ще трябва да ти отговори, какво точно се "чупи" в твоето решение.

 

Това е оптимизираният от мен код:

https://pastebin.com/wK5sCxSD

 

Така, първо промених мапът от HashMap на TreeMap, защото в него ключовете са сортирани. Съществените промени, които направих са в switch - конструкцията. Използвам цикъл, за да премина през мапът и да проверя дали името на дадения играч съществува. В case "|" просто отбелязвам true (ако съществува), в case "->" директно премахвам името. След което и в двата кейса изпалзвам if - else if конструкция, за да проверя дали съответната страна съществува, ако не съществува добавям страната в ключовете, и създавам нов new ArrayList<>(), който съответства на този ключ, и в който ще се съхраняват имената. След това просто добавям име. Мисля, че оптимизираният код ще ти свърши работа.

 

Успех!

0
11/11/2019 00:16:43
Val3ntinV avatar Val3ntinV 20 Точки

Благодаря за помощта !! Прав си за решението , че е малко уплетено , но в момента ги свиквам тези масиви , че попринцип са си труднички !!

0
SvilenVelikov avatar SvilenVelikov 1 Точки

Здравей 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))

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.