Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият.
Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание.
Използваме бисквитки и за измерване на маркетинговите ни усилия.
Само дето в условието никъде не се споменава за повтаряне на присъстващите!
"If she is given ID that already exists she needs to check if the eventName is the same. If it is, she adds the participants from the request to the other registered participants"
Здравей,
Моят метод (долу) за добавяне на event и участници винаги изчиства повтарящите се участници в рамките на един event и пак взимам 90 точки. Ето ми целия код, ако някой може да намери проблема.
static void AddEventToList(Dictionary<int, Event> eventsList, Event currentEvent)
{
int eventId = currentEvent.ID;
string eventName = currentEvent.Name;
if (!eventsList.ContainsKey(eventId))
{
eventsList.Add(eventId, currentEvent);
}
else
{
if (eventsList[eventId].Name.Equals(eventName))
{
eventsList[eventId].Participants.AddRange(currentEvent.Participants);
eventsList[eventId].Participants = eventsList[eventId].Participants.Distinct().ToList();
}
else
{
return;
}
}
}
Пише го тук:
Roli is the organizer of those events, so she needs to keep track of the unique participants for each event
Съгласих се :D
Въпреки че това съм го направил, на мен също деветият тест ми пропада.
Благодаря ти!
Здравей :))
Мисля, че при теб проблемът е същият: Distict() изчиства повтарящите се участници, но в твоя код това се случва чак след като един event e създаден, появява се за втори път и му даваш AddRange с новите участници, т.е. ако имаш например такъв вход:
1 #Beers @roli @trophon @alice @alice и event-ът Beers не среща отново, програмата ще върне два пъти @alice, защото въобще не стига до Distinct. Ако добавиш participants = participants.Distinct().ToList(); като създаваш първоначално списъка, judge дава 100 точки :D
Боже, нямаше да се сетя, все си мислех, че повторенията ще дойдат едва при второ добавяне... Много благодаря!! IvMironov, ако може да дадеш на e_rogleva един Best Answer, аз щях, но не съм задала аз въпроса.. а ако бях направила отделен пост, щяхме да се повторим.
Въобще не предполагах, че в едно и също събитие може да има повтарящи се участници...
може ли и тук малко помощ с тест 9
http://pastebin.com/PqkSXN9L
Здравей :))
На 41-ви ред от твоя код промених if (events.Any(e => e.ID.Contains(currentEvent.ID))) на (events.Any(e => e.ID.Equals(currentEvent.ID))), така задачата не гърми
ох , то и аз това съм имал впредвид ама те ;-) златна си. мерси
http://pastebin.com/ktawzf1x - ето моят код. На мен ми гърми 10 тест и примера, който сте дали за Beers работи, но нещо друго се прецаква.. Някакви идеи?
Каква ти е идеята с това
else if (!(events.Any(e => e.Name == eventName || e.ID == eventID)))
За да създам ново събитие нали не трябва да има друго със същото ИД и име?
Не трябвя да има друго събитие със същото ID. За името мисля никъде не се споменаваше в условието.
Да само ID-то е уникално.She saves the events by 'ID', which is the unique code for each event. For each ID, she keeps the event name and the participants for it.Две ID-та могат да имат еднакви имена и еднакви участници
else if (!(events.Any(e => e.ID == eventID))) - ето сега в else-if проверявам, дали няма такъв ИД и ако няма добавям събитието, но пак е 90/100
по принцип имаш грешки като например при вход:
1 #Beers @roli @trophon @alice
2 Game#DevMeetup @sino @valyo
3 #Karaoke @nakov @royal @ROYAL @ivo
Time for Code
ти признава вторият евент а той не е правилен . ред 25 if (!eventName.Contains("#")) , трябва да е if (!eventName.StartsWith("#")), но не те лови за това ;-), по принцип и евнет ID не е казано че е число, може да е и стринг, но май и това не е проблема.
проблема е в регекса. не лови имена на участници с @ в името. пробвай с line 43 - MatchCollection participants = Regex.Matches(inputLine, @"@\S+");
М странно да... В регекса е била грешката. Благодаря ти!
Аз все още имам проблем с тази задача. Не може ли всички повтарящи участници в събитието да се изчистят като накрая в foreach се добави .Distinct() на листа от участници?
@Konstantin Lupov
Аз с нещо такова съм я решила задачата. В последния foreach, където извеждам резултатите съм използвала Distinct
https://github.com/marialbst/Programming-Fundamentals/blob/master/Exam/4.Task/Program.cs
Здравейте,
Може ли малко помощ ? - https://pastebin.com/1DNn2mZb
Judge ми дава 40/100.
В условието на задачата имаше, че ID-то на събитието трябва да е уникално. Т.е. не може да има две събития с едно и също ID. Какво трябва да се прави при такъв случай, не помня. Мисля, че новото събитие със съществуващо ID трябваше да се пренебрегне. Никъде в кода ти не видях да правиш тази проверка.
Здравейте колеги, докарах задачата до 90 точки. Гърми ми 10 тест. Може ли малко помощ, за да си открия грешката? Благодаря предварително!
Това ми е кода: https://pastebin.com/7UeG6XB5
За уникалните участници е казано в началото на втория параграф: Roli is the organizer of those events, so she needs to keep track of the unique participants for each event.