Loading...
i.minchev.qa avatar i.minchev.qa 34 Точки

10. Array Manipulator, Chapter: Lists and Matrices - Exercises

Здравейте Съфорумци,

много... как да кажа...трошлив ми излезе кода на тази задача.

Съгл условието в Word документа всички искани Outputs излизат коректно, но Judge ми дава Runtime Error на стъпки 7 - 12 съответно резултат 50/100 - http://pastebin.com/e8YEtZA4

Нямам представа защо.

Условие:  https://softuni.bg/trainings/1367/programming-fundamentals-may-2016

                Раздел:  List and Matricies - Exercises

                Задача:   10 Array Manipulator

Някакви предположения или, ако не ви се занимава да чоплите в моя код бихте ли споделили някое друго решение?

Благодаря.:)

Тагове:
0
Programming Basics 03/06/2016 14:34:33
KrasimirPetkov avatar KrasimirPetkov 328 Точки

Не си добавил линк с кода си, така че няма как да ти бъда полезен в това отношение :)

Иначе ето едно решение: http://pastebin.com/SvaGN90n

Ако нещо по него не ти е ясно - питай и ще се постарая да го обясня.

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

Успех!

2
03/06/2016 13:37:20
i.minchev.qa avatar i.minchev.qa 34 Точки

Благодаря ти Краси,

благодарение на твоя код успях да опрявя моя китайски порцелан ('моя код', б.р.) - http://pastebin.com/ebuPNsBM

Това с inputNumbers.IndexOf(аргумент чийто номер на индекса търсим) не го знаех и бях написал едни оплетени редове, за да го изкарвам...

Общо взето все се мъча по мн. сложен начин да решавам и това води до предпоставки за грешки което се и вижда.  :( 

Благодаря ти още веднъж.

1
hammer4 avatar hammer4 115 Точки

Ето как я реших аз. Наистина интересна задача, само не се казва в условието за SumPairs какво става ако са нечетен брой елементите.

1
i.minchev.qa avatar i.minchev.qa 34 Точки

Много готино решение hammer4.

Съвет: коригирай switch (tokens[0]) на switch (tokens[0].ToLower())  

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

Ползи след промяната:  Както и да въведеш командата напр. "ADDMANY", "addMany", "aDdMaNy" винаги ще влиза в кейса към командата.

Съответно, за да работи трябва да оправиш шрифтовете до всеки case да са с малки букви: "addmany" , "sumpairs" ...

Поздрави.

 

0
TeodorDimitrov89 avatar TeodorDimitrov89 264 Точки

Не искам да пускам отделна тема затова ще пита в тази за същия проблем с тази задача.Вече трети ден се блъскам с нея и след като си намерих на няколко пъти грешки я направих да дава 91/100 като последния ми тест гърми за памет.

Знам че има вече дадени решения,но ще ми е интересно как мога да променя моя код за да намаля паметта и знам че като ползвам List ми взима повече памет отколкото ако ползвам array.

Извинявам се за не много сполучливите имена на променливите но не измислих по хубави 

http://pastebin.com/VGPQPvXK

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

0
KrasimirPetkov avatar KrasimirPetkov 328 Точки

Здравей!

И аз доста време се блъсках над проблема с паметта. Ето две неща от твоя код, които според мен могат да се променят:

1. При shift командата, можеш да използваш %<име на List>.Count, защото е възможно да се получи превъртане на елементите. Например ако List-а е от 10 елемента, при команда shift 11 ще се получи само 1 преместване.

2. При sumPairs, можеш да направиш сумирането само с оригиналния лист и цикъл до Count/2, което прави 2 пъти по-малко итерации, а също така се спестява и if-проверката за брой елементи накрая. За справка можеш да видиш моето решение по-нагоре.

Това според мен са най-затормозяващите функции в програмата. Всичко друго си е вградено в опциите на List-овете и няма смисъл да се дълбае. Пробвах и варианти на методите, при които се връща нов List или се променя настоящия (с ref), но честно казано не съм си играл да засичам кое колко бързо работи. Надявам се да съм ти бил от полза.

Успех!

3
TeodorDimitrov89 avatar TeodorDimitrov89 264 Точки

Благодаря ти. Утре ще пробвам,защото тази задача ми е доста как да кажа болна тема,но ти благодаря и ще пробвам.

Успех

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