Loading...
ViktorVidolov avatar ViktorVidolov 2 Точки

C++ Advanced - Judge Assignment 2

Здравейте Колеги,

Отново се сблъсках с трудности в решението на 2 от задачите от примерният тест. Доста неща се пробвах да попрочета от проблемите на други хора, но така и не успях да стигна до 100/100 от решнието на Copy Paste и Two Dimensional.

За Copy Paste, предполагам че проблемът ми е главно във функцията за копиране, пробвах да я напиша по няколко различни начина но все изкарвах максимално 40/100. Предполагам, че не запазвам някое празно място при създаването на substring, но след цял ден мъки реших да потърся помощ - това е кодът ми: Copy_Paste

За Two Dimensional дори не знам къде да гледам и какви са крайните случаи, които изпускам. Бях добавил доста голямо количество guard-ове за дали позициите са ми подадени в рамките на низа, но това не промени количеството точки - код: Two Dimensional

0
C++ Advanced
gslavchev avatar gslavchev 5 Точки

Здравей, за Copy Paste проблема е, че си забравил да pop - ваш от стека, във втроят случай, когато пействаш в средата на думата.

За Two Dimensional проблемът е в обхождането на матрицата. Идеята е, че на всяка стъпка пак може да тръгнеш в четирите посоки. Добре е при обхождането да не променяш веднага символа, а да си запазиш само координатите му. По този начин не си затваряш пътя при останалите проверки. Като приключиш с обхождането, чак тогава променяш всички отбелязани символи. Педпологам си забелязал, че при печат не се слага интевал между символите.

Задачата може да се реши много елегантно с рекурсия. Правиш си функция за промяна на символ, която приема координатите (ред,колона), символа който трябва да се замени и символ с който да се замени и съответно самата матрица. Условието ти за изход е координатите да са в зададените граници и символа който се намира на тях да е този който трябва да се сменя. Ако тези условия са изпълнени сменяш символа и си викаш същата функция още 4 пъти с koordinati (y,x+1) , (y,x-1), (y+1,x) и (y-1,x). 

0
09/06/2021 23:35:22
ViktorVidolov avatar ViktorVidolov 2 Точки

Благодаря много за помощта, много тъпо съм изпуснал да поп-на clipBoard-a...

Ще помисля малко повече над рекурсивно решение, за момента се справям при симетрични примери, но надявам се до края на деня да го измисля!

0
j.petrov_90 avatar j.petrov_90 373 Точки

Привет,

 

Благодаря на колегата @glavchev за добрите насоки.

 

Задачата two dimensional не е от лесните така, че изисква малко главоблъскане :)

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