Loading...

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

genadik avatar genadik 0 Точки

05. Array Manipulator 83/100

Здравейте, имам много сладък проблем някъде и не ми дава 100 точки дебъгвах пробвах всякакви варианти но не виждам каде точно ми е грешката. Ще сум много благодарен за feedback. Thank you very much ;)

https://pastebin.com/9PDT3T8m

 

Тагове:
0
Fundamentals Module
ElenaSei avatar ElenaSei 11 Точки

Не съм убедена, че при команда Contains извършваш правилното нещо. По условие искат да принтираш първият индекс, на който присъства въпросният елемент. А така написан, твоят код винаги ще принтира 0.

0
genadik avatar genadik 0 Точки

Да това го забелязах малко по- късно мислих че условието е 0 за True i -1 за False.

0
Vesso1980 avatar Vesso1980 486 Точки

Имаш две грешки, едната е при варианта contains. Ето решение:

Console.WriteLine(list.IndexOf(int.Parse(commands[1])));

Другата е при sumPairs. Ето решение:

for (int i = 0; i < list.Count - 1; i ++)
            {
                var sum = list[i] + list[i + 1];
                list.RemoveRange(i, 2);
                list.Insert(i, sum);
            }

С тези двете поправки дава 100%. 

Като цяло кодът ти може да се по изглади малко, имаш някои излишни неща.

примерно това:

int i = 1;
            int incr = 0;
            while (i < holder.Length)
            {
                list.Insert(indexer + incr, holder[i]);
                incr++;
                i++;
            }

може да се замести с това:

for (int i = 1; i < holder.Length; i++)
            {
                list.Insert(indexer++, holder[i]);
            } 

 

0
07/06/2018 11:44:45
Vesso1980 avatar Vesso1980 486 Точки

Ето и едно удобно и краткио решение за shift операции. 

int numberOfPositions = int.Parse(commands[1]);
numberOfPositions %= list.Count(); -> редуцира излишните операции в случай че подадат число по-голямо от размера на листа.
list = list.Skip(numberOfPositions).Take(list.Count() - numberOfPositions).Concat(list.Take(numberOfPositions)).ToList();  -> тук си скипваш колкото са позициите, после си взимаш остатъка от списъка с числа и накрая си залепваш частта, която беше скипнал в началото.

0
genadik avatar genadik 0 Точки

Благодаря Vesso ;)

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