Loading...
kaloyan_kolev avatar kaloyan_kolev 10 Точки

50/100 на Rage Quit от упражнението за Regex

Здравейте,

не знам какъв е проблемът и какво мога да подобря, но не ми минават някои тестове. ("Недостатъчно време") Какво мога да направя?

условието -> https://softuni.bg/downloads/svn/soft-tech/Jan-2019/Csharp/09-Text-Processing-and-Regular-Expressions/Exercise/09-Text-Processing-and-Regular-Expressions-Exercise.docx

кодът ми -> https://pastebin.com/8gdvyEL5

Тагове:
0
Fundamentals Module 04/04/2019 14:17:40
Ivan.N.Iliev avatar Ivan.N.Iliev 44 Точки
Best Answer

Преработих кода ти и при мен мина 100/100 - https://pastebin.com/9wYdpL43

Проблемът според мен беше в това, че проверяваш за уникални символи в целия резултат, а според ограничениятар описани в условието един стринг може да е с дължина 20 символа и да се повтаря 20 пъти. По този начин при проверката за уникални символи правиш 400 итерации вместо 20. Това умножено по двойките стринг-повторения, които могат да бъдат 20 000 са много излишни итерации.

При този вариант трябва да добавиш и проверка дали повторенията на стринга са повече от 0.

0
kaloyan_kolev avatar kaloyan_kolev 10 Точки

Благодаря ти за отговора! Наистина не разбирам какъв е смисълът от проверката на това дали times > 0. Times е група от Regex-a, която отговаря на броят пъти, които стингът ще се повтаря. При какъв случай тази променлива би била по-малка от 0? 

0
Ivan.N.Iliev avatar Ivan.N.Iliev 44 Точки

Times може да бъде равна на 0, а в този случай не трябва да добавяш символите защото стрингът няма да бъде включен в крайния резултат.

0
kaloyan_kolev avatar kaloyan_kolev 10 Точки

Мисля, че схванах. Би ли ме поправил, ако греша?

Да речем получаваме този input:

abc0$5

string value = "abc"

int times = 0

В случая не добавяме 'a', 'b' и 'c' в uniqueSymbols, защото те няма да се срещат в крайния стринг, а добавяме само $. 

Между другото опитах с .Distinct -> 80 / 100  

Крайното ми решение. Благодаря на @Ivan.N.Iliev

 

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