Loading...
NonaG avatar NonaG 111 Точки

Задача Rage Quit от Programming Fundamentals Sample Exam I - October 2016

Понеже тази задача явно трябва да се реши с Regex, а аз чакам лекцията с Ивайло Кенов, защото изгледах и майския, и септемврийския курс за регекси, но определено имам нужда от много повече информация по темата, направо е необятно - нито lookbehind/..., нито positive/negative, мътна и кървава...Особено като съм online, много е трудно да събереш пъзела сам, само с четене от интернет,...

Това е решението  ми без регекс: http://pastebin.com/40nLkK1N

Обаче дава само 10т. Има тестове, които гърмят за време /тестовете са поместени в C# Advanced Exam - 19 юли, но са нечетими за мен/, други не изчисляват правилно... Това char.IsDigit не работи, както очаквам...

Задачата е тази: https://judge.softuni.bg/Contests/Practice/Index/331#2

Моля някой да отдели време да обясни къде бъркам.

 

Тагове:
0
Programming Fundamentals
varbanov88 avatar varbanov88 38 Точки

Някой вас би ли погледнал това решение: 

http://pastebin.com/zfbY1ssu 

дава ми 90/100 и гърми само в 1 тест, в който броят на уникалните символи е грешен, а принтираният резултат верен.

Всеки символ, който не е число го добавям в HashSet и въпреки това в вади грешен резултат.

Не мога да разбера защо е така

0
NonaG avatar NonaG 111 Точки

Ако промениш result да ти е StringBuilder, нпр., и след това му вземеш дължината с неповтарящите му се символи, /защото като лист не знам как да го преработя за достигане на същата идея/, :

var count = result.ToString().Distinct().Count();
Console.WriteLine($"Unique symbols used: {count}");

тогава ще получиш 100/100. Не мога да ти кажа защо, авторските тестове са прекалено дълги, за да разбера кой йероглиф се чете един път в result и два пъти в uniqueSymbols. :)

Всъщност, ако разбереш, моля пиши.

0
22/02/2017 20:29:32
krasio12356 avatar krasio12356 19 Точки

Да не би авторския да е грешен.

Щото и със сортед сет гърми на един тест и на един нулев, на същите, дето и със хаш сет гърми.

Ама няма символи, дето се повтарят на нулевия. Сортед сет ги сортира и се вижда, че са уникални. Съгласно дадения вход излиза, че авторския отговор на нулевия тест е грешен.

По вероятно е метода Дистинкт да е бъгав, защото, няма как сетовете грешно да преброят символ в повече. Това значи да изтърват два еднакви. Не може, защото или се хешират на едно място, или се сортират на едно място.

Затуй му се вика сет, защото по природа държи само уникални елементи.

Със Дистинкт.Каунт върху същия стринг билдър дава 100 точки, ама е грешно. Явно метода е бъгав.

0
03/06/2018 09:57:26
rumen80 avatar rumen80 13 Точки

Нищо не е бъгаво. Има уловка в условието че повторението може да е 0 - т.е. да не се включва. Затова трябва да се проверява крайният резултат за уникални символи, а не предварително.

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