Strings and Regular Expressions - More Exercises
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