Професионална програма
Loading...
+ Нов въпрос
TihomirPavlov avatar TihomirPavlov 4 Точки

Имам проблем с тази задача: Problem 2 Array Manipulator

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

реших да реша тази задача Problem 2 – Array Manipulator. На VS нулевите тестове минават, но в judge ми дава Compile time error.

Вероятно имам грешка в някои цикъл?

Това е кодът ми: https://pastebin.com/H4Jb3KC2.

 

Тагове:
0
Programming Fundamentals 28/06/2018 09:12:08
TihomirPavlov avatar TihomirPavlov 4 Точки

С това решение изкарах 60/100.

https://pastebin.com/4FyawEkk

0
TeodorStefanovPld avatar TeodorStefanovPld 1282 Точки

колега 200 реда това е безумие по-добре започни наново и прочети условието пак..

това няма дебъгване  и на изпит ще се самоубиеш страх ме е да питам колко време си го писал? :Д

примерно мога да ти кажа че проверките аз odd even можеш да ги направиш с linq  array.sum(x=>x%2!=0) или нещо такова нямам едитор но горе долу има много начини да се съкрати а и сега чета условието ти си  направил ритуално сепуко с тоя код.

имаш и неща като lastindexof като намериш even или оdd и тн и тн.

0
28/06/2018 10:15:49
TihomirPavlov avatar TihomirPavlov 4 Точки

Знам че кога е безумно дълъг, исках да пробвам да реша задачата предимно с проверки. Да я разпиша максимално подробно, за да разбера къде греша. Явно съм подходил грешно.

 

0
TihomirPavlov avatar TihomirPavlov 4 Точки

Това е новото ми решение.

https://pastebin.com/802HtKxL

Възможно ли е да ми дава Compile time error, ако го submit-вам на C#,а не на .Core?

0
NikolayNeykov92 avatar NikolayNeykov92 618 Точки

Здравей,

при command == "exchange" на ред 23 нямаш проверка дали индекса не е по-малък от 0  

if (index >= 0 && index < arr.Count)

при command == "last" вземаш първите елементи, а не последните . По начина по който си подходил трябва да стане за

seccommand == "even" 

lastEven.Reverse();
lastEven = lastEven.Take(count).ToList();
lastEven.Reverse();

съответно за seccommand == "odd" 

 lastOdd.Reverse();
 lastOdd = lastOdd.Take(count).ToList();
 lastOdd.Reverse();

0
28/06/2018 10:52:24
TihomirPavlov avatar TihomirPavlov 4 Точки

 C TakeLast мисля, че се получава, да взема последните. Без да го ревърсвам.

lastOdd = lastOdd.TakeLast(count).ToList();

0
NikolayNeykov92 avatar NikolayNeykov92 618 Точки

Да може и така btw аз говорех за това решение: https://pastebin.com/4FyawEkk 

само че judge дава compile error с TakeLast

0
28/06/2018 12:13:26
TihomirPavlov avatar TihomirPavlov 4 Точки

Благораря за помощта :)

0