Loading...
Terziyski avatar Terziyski 54 Точки

[Programming Fundamentals] Arrays and Methods - 02. Manipulate Array

Здравейте , имам проблем със тази задача  , тъй като при втория нулев тест ми нулира манипулациите на 4-то завъртане .

Това е кодът

Благодаря предварително!

П.с - не използвам отделни методи за всяка отделна манипулация...тъй като исках първоначално да си сглобя програмата.

 

 

Тагове:
0
Programming Fundamentals 15/06/2017 12:02:59
icowwww avatar icowwww 2792 Точки

Проблема е там, че при всяко завъртане отново променяш началния масив, а не получилия се от предното завъртане. Не ти трябва втори масив(changearray е излишно). Запаметявай новия масив в същата променлива:

arr = arr.Distinct().ToArray();

Array.Reverse(arr);

arr[int.Parse(replace[1])] = replace[2];

Console.WriteLine(string.Join(", ", arr));

Така работи както трябва

Може да пропуснеш проверки ако ползваш if-> else if-> else, а не if->if->if

0
15/06/2017 11:42:53
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

това няма да проработи така или иначе в  началото на цикъла винаги ще ти върне началния масив  арр, променения, тормозих я и аз вчера но накраяря направих с лист. извън цикъла винги хваща непроменения масив. Опитах всичкор hashset -да маха автоматично повторенията в изведен метод. Distinct като колегата temp масив в който с copyTo и Array,Resize прехвърлях резултата от distinct команда. Но накрая при връщане в началот на for cycle arr==  string[] arr = Console.ReadLine().Split(' ').ToArray(); и това немеже да се промени.С едни сложни if и тн, i паралелно вървене на цикъла става но се усложни доста, и си улесних живота с List

0
icowwww avatar icowwww 2792 Точки

Когато променяш масив го запази някъде:

arr.Distinct();

не прави същото като

arr = arr.Distinct().ToArray();

Дали ще полсваш масив или лист няма кой знае каква разлика.

това е промененото решение, което е c масив и работи.

https://pastebin.com/GuZVksc7

0
15/06/2017 12:26:10
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Уф така го бях направил отначало.Но бях изтървал, след дистинкта.toArray() и ми ревеше и взех да го променям..мамка му можех да си спестя 2 часа вчера лутане..нали е array мислех че логично се запазва пак в array.. не да му казвам изрично....

Сега разбирам какво е станало.аз си го променям в рамките на цикъла но оригиналния остава и в началото на цикъла пак взима него...и то само заради .ToArray()... знаех си че е нещо малко.но пак прочетох и тествах доста други неща снощи

0
15/06/2017 13:24:00
Terziyski avatar Terziyski 54 Точки

:D и аз си поиграх над 40 пъти със debugger-a за да разбера какво се случва , полезното е че практикувах доста :D

0
Terziyski avatar Terziyski 54 Точки

Здравейте, 

Това е решението ми : https://pastebin.com/BZTWaHRW 

Успях да си е реша малко преди да получа отговорите ви :), нямаше нужда да използвам List-ове в този случай , тъй като нямаше голямо значение. , просто знаех че презаписвам първоначалния масив и трябваше да го хвана в променлива .

Благодаря за отговорите .

По интересно стана със следващата задача на която ми гърмят 3 теста за време : 

https://pastebin.com/kuf0UDmS :D :D

0
15/06/2017 12:54:41
icowwww avatar icowwww 2792 Точки

https://pastebin.com/L1a4SkZA

Не правиш проверка дали командата е валидна, for цикъла и проверките преди Distinct са ненужни и използваш пак 2 масива, които правят едно и също-arr и changearr. 

1
15/06/2017 13:26:50
Terziyski avatar Terziyski 54 Точки

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

0
Bullsized avatar Bullsized 153 Точки

и моето решение е без методи, последователно. така и така темата е arrays, не lists, за това гледах да се измъча да ползвам масиви за решение. правя си 2 масива, като накрая проверявам размера им и съответно ги 'орязвам' и копирам.

0
Volen99 avatar Volen99 3 Точки

https://pastebin.com/Ykei6mvs - Лесно и просто.

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