Професионална програма
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 248 Точки

Привет,

 

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

 

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

0