Nether Realms
Условие(Задача 4): https://softuni.bg/trainings/resources/officedocument/52671/regular-expressions-more-exercise-python-fundamentals-september-2020/3132
Код(60/100): https://pastebin.com/AuVqFD9X
Тези от примера минават.
Условие(Задача 4): https://softuni.bg/trainings/resources/officedocument/52671/regular-expressions-more-exercise-python-fundamentals-september-2020/3132
Код(60/100): https://pastebin.com/AuVqFD9X
Тези от примера минават.
Здравей.
По условия има доста неща които си изпуснал.
1. The input will be read from the console. The input consists of a single line containing all demon names separated by commas and zero or more spaces - може входа да е с повече спейсове, както отпред, така и преди ... съветвам те тук да направиш отделен регекс.
2. Също по условие регексите за кръв и демидж има какво още да добавиш по тях по условието.
От там главно идват грешките.
Ако имаш затрудния напред, нареща съм!
Относно точка едно - забелязах го това и направих проверка със повече интервали.
Също така коригирах регекса за кръв, но резултата е същия:
[^0-9\+\-\*\/\.]
Здравейте,
на C# съм, но предполагам, че регексите ще са същите:
Regex regexForHealth=new Regex(@"[^\d\+\-*\/\.]");
Regex regexForDamage = new Regex(@"(?:\+|-)?[0-9]+(?:\.[0-9]+)?");
Regex regexForMultiplyOrDivideSymbols = new Regex(@"[*\/]");
А за сплита добавете и това- { ' ', ','},StringSplitOptions.RemoveEmptyEntries. Синтаксиса ще е различен, но идеята е, че са няколко сепаратора и се изтрива празното пространство между тях.
И ако искате погледнете и решението ми на C#, предполагам няма да е много по-различно на Python- https://pastebin.com/ZPqmrnaX
Дано да съм успяла да помогна.
Поздрави!
Реално аз сплитвам само по ', ', което означава, че ще има празни пространства. Обаче чрез demon = demon.strip() изтривам празните пространства в началото и края на string-a. Проблема не е с тях, аз направих проверка със празни пространства между имената и си работи добре. Regex-a за за health-a ми е същия, но като добавих вашия regex за damage, ми даде 60/100. Много благодаря!
Поздрави и на вас!
Радвам се, че имате вече 60 точки.
Аз и колегата @ Arksiana7 се опитваме да Ви обясним, че сплита не Ви е пълен.
Да, реално си сплитвате само по ', ' (запетайка и един възможен спейс), но вижте условието:
The input consists of a single line containing all demon names separated by commas and zero or more spaces in the format...
Реално трябва да сплитвате по няколко възможни сепаратора и програмата ще работи, ако сепараторите са тези- " " и "," .
Зададен сплита по вашия начин няма да работи с това примерно- ", " (с много спейсове) или с това "," (без спейс).
В началото, като решавах и аз тази задача също сплитвах по вашия начин и Judge не даваше 100/100. След като смених сепаратора на горните два, чак тогава ми даде 100/100.
И имайте предвид, че понякога дадените инпути не са пълни на 100% , а самото условие подсказва, че Judge ще има и допълнителни тестове с допълнителни инпути. Прави ми впечатление, че това важи особено за задачите със звездичка.
Подрави!
Ели
Зададен сплита по вашия начин няма да работи с това примерно- ", " (с много спейсове) или с това "," (без спейс). -> Работи, понеже след сплита изчиствам празните пространства в началото и края на стринга, чрез strip метода. Резултата от следния пример: M3ph1st0**, Azazel е:
1)M3ph1st0**, 2) Azazel. След прилагането на метода -> 1)M3ph1st0**, 2)Azazel.
" " -> не мисля, че това е възможен сепаратор, понеже от условието се разбира, че задължително ще има запетая.
" all demon names separated by commas and zero or more spaces"
Въпреки това, го добавих като възможност, но нямаше промяна.
Здравей.
1.Грешка на ред 20. трябва да е ("/")
2. Грешка в регексите.
Когато става дума за такъв тип задачи, помисли за всякакви възможни тестове.
Сплита съм го извела в отделен регекс, защото може да има спейс и преди запетаята.
С твоя метод - Strip - задачата даде 90/100.
Твоя код - 100/100
https://pastebin.com/xNJZxWrb
Леле колко съм разсеян!
Ами '/' за деление, много ясно(facepalm).
Супер си, много ти благодаря!
Приятен уикенд!