Loading...
DNNdrago avatar DNNdrago 145 Точки

[Exam Problems] JavaScript юли 2014, решения

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

 

Оттук могат да бъдат свалени изпитните варианти /задачи, тестове и авторски решения/:

Задачи от JS Basics изпит - 27 юли 2014

Задачи от JS Basics изпит - 28 юли 2014

Задачи от JS Basics изпит - 29 юли 2014

 

И връзка към вече отворените за практикуване съзтезания:

JavaScript Basics Exam - 27 July 2014

JavaScript Basics Exam - 28 July 2014

JavaScript Basics Exam - 29 July 2014

4
JavaScript Fundamentals
DNNdrago avatar DNNdrago 145 Точки

Ето моите решения на задачите от 27ми, неделя. Кодът е напълно натурален без каквато и да е била корекция:

 

01. Build a Table 

02. Reveal Triangles - тук извличам максимума от 'странностите' на JavaScript-a, възможно е излизане от границите на стринга, който е на "горния" ред, но в такъв случай се сравнява кой да е символ с undefined, което си връща false. Излишно е да споменавам, че кодът си е абсолютно не оптимизиран.

03. Extract Hyperlinks - моята мъка, не ми се коментира дори xD

04. Concerts - като си видях решението преди малко направо се стреснах...

 

 

3
Dekameron avatar Dekameron 481 Точки

А от къде можем да си видим нашите решения, които сме използвали на изпита? Искам да си проверя защо ми е гърмяло на някои тестове.

0
lostm1nd avatar lostm1nd 121 Точки

Може да влезеш в judge системата на дадения изпит и там ще ти покаже всички решения, които си пуснал. До тях има един бутон View, къде може да си видиш и самия код.

1
RoYaL avatar RoYaL Trainer 6849 Точки

Като отвориш изпита от джъджа, вместо Practice му кликаш върху името и ти излизат твоите submission-и

3
dani_ddd avatar dani_ddd 82 Точки

Ето я моята малка гордост - трета задача от изпита на 27-ми без ниго един регулярен израз embarassed

03. Extract Hyprlinks

3
VenIT avatar VenIT 63 Точки

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

1-Double-Rakiya-Numbers  100/100

2-String-Matrix-Rotation  100/100

 

4-Soccer-Results   40/100  така и не успях да я оправя, но към края на изпита става все по-трудно да се концентрираш.

3 задача така и не ми даде повече от 20т .
За regEx мнението ми е,че в повечето случаи е едно трудно четимо кафяво нещо . :) 

 

2
lostm1nd avatar lostm1nd 121 Точки

Вие с DNNdrago явно сте се наговорили да не ползвате JSON обекта ;>. Аз честно казано сигурно нямаше да мога да я реша по вашия начин ако не бях ползвал наговото JSON.

0
p.ivanov avatar p.ivanov 0 Точки

Аз решавах само една задача. Между 1 и 2 часа ми отне да измисля нещо по Prices Trend Table уж работещо. И към 2 часа се опитвах да разбера защо judge-то не ми го харесва и ми дава само 10 точки. Другите не се и опитах, а си хванах пътя smile. Някой ако може да ми обясни каде съм объркал. Благодаря предварително.

http://pastebin.com/vFu3WUX1

На всички проверки ми изкарва правилен output. Струва ми се, че от начина, който искат да се взима input-a или разпечатва output-a, но ще е много кофти ако е от това.

0
RoYaL avatar RoYaL Trainer 6849 Точки

Тук проблемът ти идва не от друго, а от това, че всъщност не си разбрал как ще дойде инпута.

Многократно беше обяснявано и написано, че всеки нов ред във входа е нов ключ в масива.

Т.е. вход:

36.333

36.5

37.019

и т.н.

няма да дойде като ["36.333 36.5 37.019"] а като  ["36.333", "36.5", "37.019"] 

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

prices(['36.333', '36.5', '37.019', '35.4', '35', '35.001', '36.225']);

 

Съответно парсирането на входа би било по input[N], а не по input[0]

 

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

 

   var nums = new Array();


   for (var i = 0; i < input.length; i++) {

            nums.push(parseFloat(input[i]).toFixed(2));       

    }

 

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

7
a_rusenov avatar a_rusenov 1103 Точки

Поствам моите решения, непроменeни, от изпита на 29 юли:

01.Prices Trends - тук трябва да се вземе предвид, че .toFixed() връща стринг и при сравняването много от тестовете гърмят, понеже "числата" се сравняват лексикографски.

02.Tetris Shapes - проверката за фигура става с метода checkFigure(). Той се извиква във всяка клетка, общо 7 пъти, по веднъж за всяка фигура, като приема за аргументи координатите на 4 клетки от матрицата, и връща 1, ако всички те съдържат 'o'.

03.Biggest Table Row - тук единственото трудно сякаш е regex-а. В случая split-нах по [^0-9-.], което е всичко останало без тези символи.

04.Students, Courses, Grades - доста недоизпипано решение, като например вместо да слагам оценките и присъствията в масиви и после да ги деля на общата дължина, добавям допълнителнa промелнива count..

2
Aluin avatar Aluin 76 Точки

И аз ще постна моите две задачки от 29.07 само и само да се позабавлявате с ламерски код.. Особено трета задача която ми даде 90 точки, е брутално написана, но все пак успях да извлека нужните стойности след 100 сплитвания, сума ти темп променливи и какво ли не глупости, само защото не разбирам много regex .. Съответно след като видях тестовете, не ми смята минусовите стойности и въобще смешна история.. Сложила съм и инпут данните за по лесно

01 Prices Trends 

03 Biggest Table Row

1
Desso avatar Desso 146 Точки

Едва ли някой е решил първа задача [Double Rakiya Numbers] на изпита от 28ми по по-дърварски начин от моя ;))

цък тук

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