Loading...
fedele avatar fedele 7 Точки

Strings and REGEX-more exercises-->Email Statistics

Здравейте,

можете ли да ми подскажете къде ми е грешката.Получавам 66/100. Задачата е: Email Statistics

Strings and Regular Expressions - More Exercises

https://judge.softuni.bg/Contests/Practice/Index/585#5

моето решение:

https://pastebin.com/mXXKJTRv

вече доста време гледам и нищо не виждам  :)

Не ми трябва друго решение.Просто искам да разбера каква ми е грешката.

Предварително благодаря

Тагове:
1
Programming Fundamentals
NikolayNeykov92 avatar NikolayNeykov92 617 Точки

Опитай, вместо да залепяш всеки инпут към StringBuilder-а и после да го обхождаш oтново

с MatchCollection, a вместо това още със прочитането на инпута да го проверяваш дали е валиден имейл

с Match и към патърна си добави ^(?<users>[A-Za-z]{5,})@(?<domains>[a-z]{3,}\.(bg|com|org))$

 

1
15/06/2018 19:25:43
fedele avatar fedele 7 Точки

Има ли вариант и по моя начин да се получи?

Не мога да разбера какъв е проблемът.

1
butoff avatar butoff 33 Точки

Обикновенно при задачи с регекс проблемът е в регекса.

Казано е че на всеки ред ще получаваш нов email, т.е. регекса ще трябва да започва с ^ и да завършва с $. Това е основният проблем. Явно в Judge има някакви случай които тестват това.

Работещо решение https://pastebin.com/Q1j8MvcJ  , но като му махнеш start of string ( ^ )  и End of string ( $ ) гърми като твоето решение.

В твоето решение този регекс изобщо не сработи, защото входните данни ги прибираш в StringBuilder от който правиш стринг.

След това създаваш MatchCollection и накрая колекция с резултатите. Вместо три колекции, по-добре една в която въвеждаш валидните email-и. Твоят начин е заобиколен, не че не може да стане, но няма необходимост от тези трансформации.

(Вместо да добавяш интервал в StringBuilder, можеш да ползваш AppendLine().) 

 

0
NikolayNeykov92 avatar NikolayNeykov92 617 Точки

Здравей, сега видях че с добавянето на \b(?<users>[A-Za-z]{5,})@(?<domains>[a-z]{3,}\.(bg|com|org))\b 

към регекса на твоето решение judge дава 100/100.

0
16/06/2018 08:50:39
fedele avatar fedele 7 Точки

ok благодаря за съветите

0
fedele avatar fedele 7 Точки

ok много ти благодаря

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