Софтуерно Инженерство
Loading...
eLaZizY avatar eLaZizY 2 Точки

За да не правя нова тема, ще попитам тук. Същата задача ми дава 80/100, гърмят ми седмия и последния тест. Ровех, тестове правих, но не мога да намеря грешката си. Някой ако има време, ако може да погледне решението ми. Благодаря.

https://pastebin.com/H4q15NdJ

0
willystyle avatar willystyle 574 Точки

Първата грешка (7-тест), е че проверяваш дали if (fans[name][trait] < value) преди да си преизчислил с метода новото value, замени го с if (fans[name][trait] < AddValue(trait, value)).

Втората грешка (последния тест), е понеже е казано " If this boy already exists in our database all positive traits added so far are erased! ", а ти с .Clear() триеш всички traits, не само положителните. Може би има кратка за ламбда за целите, но не можах да я съчиня, затова с един форийч намирам положителните и после ги трия.

Ето го с малките корекции:

https://pastebin.com/Nxk1uKLY

Поздравления за изключително четливото и подредено решение.

P.S. ламбдата с LINQ се получи, спестява 5-6 реда код: Вместо fans[name].Clear()

трябва: fans[name] = fans[name].Where(x => fans[name][x.Key] <= 0).ToDictionary(x => x.Key, x => x.Value);

0
29/04/2018 10:48:45
eLaZizY avatar eLaZizY 2 Точки

Еее, за това че трябва само да се премахнат позитивните нямаше шанс да го намеря. Благодаря ти много. За if (fans[name][trait] < AddValue(trait, value)). бях го променил по този начин, но пак даваше 80/100, вероятно защото пак е имало да премахна само позитивните, и реших да го върна обратно поради някаква причина, даже не ясна за мен защо... Пак Благодаря за доброто и подробно обяснение. Златен си!

0