[C# Advanced] Problem 13. ** Сръбско Unleashed
Колеги, може ли малко помощ - тестовете минават а съдията гърми на 40/100. Не претендирам, че съм с най-добрия регекс, но мисля, че работи, защото тествах с различни случаи - code
Колеги, може ли малко помощ - тестовете минават а съдията гърми на 40/100. Не претендирам, че съм с най-добрия регекс, но мисля, че работи, защото тествах с различни случаи - code
В момента нямам възможност да разгледам подробно кода, който си написала, но на пръв поглед:
Нужно ли е да използваш регекс? Аз бих пробвал по - прост начин, като например:
- От въведения стринг взимам първо до @, след това останалия стринг сплитвам по спейс и проверявам дали елементите са 3.
Доколкото видях в условието валидни са данните които имат 4 елемента - име, локация, цена билет, брой билети. Именно тук не видях регекса ти да прави някаква валидация... Когато е невалиден инпута трябва да се пропусне, а при теб минава... обърни внимание на тази част от кода, другото изглежда работи.
Успех!
Проблема се получава от малко подвеждащото условие > Each of the four tokens must be separated by a space, everything else is invalid. Освен спейсовете всякакви други символи трябва да са ти валидни.
Давам ти примерен работещ регекс да видиш разликите => string pattern = @"(.*?)\s@(.*?)\s(\d+)\s(\d+)";
Другото което препоръчвам е да нямаш повече от един регекс и по възможност да го използваш само в краен случай. В тази задача специално без регекс мисля че съм я докарвал до 90%.
мерси :)
да, гледала съм и други решения на задачата. Исках да видя къде в това, което съм написала е грешката. Естествено регекса е първата грешка. Мерси :)
Според мен, за тази задача, ако не си много на ти с regex е по-добре да си построиш логика, без да използваш regex. Друго, което видях в кода ти, не е необходимо да използваш BigInteger, използването му може да ти доведе до забавяне на кода и да имаш грешка тип timeerror. В long се побира всичко, мисля , че и в int става.