Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

o_ignatov avatar o_ignatov 54 Точки

[Programming Fundamentals] [(RegEx) - Exercises]03. Camera View

Здравейте,

задачата е от https://judge.softuni.bg/Contests/Compete/Index/430#2

и изкарвам 50/100 с това решение. Не мога да кажа и че съм разбрал условието или по-скоро не знам какво правим когато не можем скипваме толкова и когато можем да тейкнем по-къс събстринг. Опитал съм се да хвана тези случаи по някакъв начин но изглежда има някои тестове които не хващам. Regexa го тествах и работи или поне така си мисля.

Помощ!

Тагове:
0
Programming Fundamentals 03/07/2017 18:21:21
o_ignatov:
solved, by msotiroff
krasi1105 avatar krasi1105 380 Точки

Цялата логика можеш да я събереш в регекса, разгледай този патърн $@"(?<=\|<.{{{skip}}})[^|]{{0,{take}}}". Матчва от 0 до take различни от '|' символа(начало на друга камера), преди които има начало на камера и skip символа.

0
30/06/2017 17:32:01
d_rumenov avatar d_rumenov 35 Точки

Здравейте,

След като загубих безброй часове така и не мога да измисля читав израз, който да отговори на условието на задачата...или поне на входа та Judge...

След редица опити общо взето сътворих това:

(?<=\|<)[^\|<]{"+ skip + @"}([^\|<]{" + take +@"})

Като логиката му е да провери дали има |<, после присвоява всички символи, освен същите, прави скок, после взима всички символи освен |<.

Очевидно не работи така, както аз си го представям... Или най-малкото не разбирам правилно условието...най-вероятно и двете...

Та чудя се как може да се реши тази задача... Благодарен съм за всякакви съвети.

Поздрави!

П.С. Освен това, въобще не мога да разбера как се правят проверки с тези изрази. В горния такъв мисля, че прескача стринг, който съдържа само < или |, което по условие е грешно мисля... не мога да го накарам да ги захапе като едно и това си е...

0
msotiroff avatar msotiroff 136 Точки

Доколкото разбирам в условието е казано, че след като пропуснем m на брой елементи, започваме да вземаме n на брой и тогава(вече при вземането) ако има нова камера в стринга да спрем мачването до там на n-елементите.

В този случай това "\|<(\w{skip})(\w{0,take})"  е предостатъчно да изпълни условието.

Успех.

1
d_rumenov avatar d_rumenov 35 Точки

Здравейте!

Това, значи, е несериозноsurpriseТо не мислих бектракове, гледане наоколо, групи, мачване и какво ли не... а то какво било.... само дето човек трябва да може да го измисли, иначе като го види наготово е ясно, че работи... тюх, чак яд ме хвана....laugh

А да не говорим, че точно това и съм написал още преди един ден, само дето take не ми е от 0-ла, а входа... предполагам, че оттам идва цялата грешка...

Мерси много за помощта!

Поздрави!

0
02/07/2017 16:24:07
o_ignatov avatar o_ignatov 54 Точки

msotiroff, мерси!

Първоначалната идея е била задачата да се реши изцяло с regex.

Това доста съкрати кода защото взимам в резултата направо take групата.

1
Yansy98 avatar Yansy98 6 Точки

Пращам ти моето решение, може да ти е от полза: https://pastebin.com/Q6vpkaem

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