Loading...

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

Nick1R1 avatar Nick1R1 115 Точки

Подготовка за изпита на 31.01 по JavaScript Basics и неразбирателство с Judge-а

 Здравейте, реших да пробвам една задача от предишния изпит и проучих как се правят инпутите за джъдж-а. И тъкмо си мислех, че съм ги разбрал докато джъдж-а нещо не ме хареса. Моля ви кажете ми дали решението на задачата Kitodar the Miner от последния изпит ми е проблемно или не съм направил така че да се приемат правилно инпутите.. http://pastebin.com/cPsFEt83

1
JavaScript Fundamentals
npaunov avatar npaunov 51 Точки

Да, решението трябва да се погледне. Правиш Split(), по space, което според мен не е удачно за тази задача, въпреки че в условието се казва "You may find one or more whitespaces as separator.", което подвежда.

Пробемът в случая е името на мината, което може да съдържа space, както и двуеточие, т.е. след като направиш Split, не можеш да предвидиш колко ще е дълъг, новополучения масив.

Единият вариант е да напишеш удачен Regex.

И другият е да направиш Split() по ":" и по "-", като трябва да си сигурен че винаги взимаш последните, заради името на мината, в което също може да се съдържат.
Ето моето решение, по втория вариант.

0
18/01/2016 14:35:17
Nick1R1 avatar Nick1R1 115 Точки

Хора, аз пак не мога да се оправя, идеята е че долу имам хардкоднат първия тест като коментари, като го сменя с втория тест си минава и втория. Махам коментарите и на конзолата е ок, закоментирам пак и  и джъджа не ми дава първи тест, че ми е ок. Иначе този проблем с разстоянията съм го решил с фунцкията clean(). На втория пример има повече от един спейс и тази функция го зачиства и си вади коректен аутпут, но пак казвам само на конзолатаа.. :(  

 

0
18/01/2016 16:01:36
malkstor avatar malkstor 348 Точки

Колега, опитай да пратиш кода като изтриеш коментираните редове преди това. Спомням си че за Java имаше някакви страннности с Judge и коментирани редове. Може и да са оправени, но за всеки случай.

1
Nick1R1 avatar Nick1R1 115 Точки

http://pastebin.com/sEZLCscq Ето работещо решение с първите два инпута, когате се хардкоуд-нат.. :)

0
npaunov avatar npaunov 51 Точки

Значи, Има разлика между теста в Judge  и примерния тест който е посочен в условието на задачата,

Първи тест в Judge:

[ 'mine bobovDol - gold : 10',
  'mine medenRudnik - silver : 22',
  'mine chernoMore - shrimps : 24',
  'gold:50' ]

Първи тест  в условието:

mine bobovDol - gold: 10"

mine medenRudnik - silver: 22"

mine chernoMore - shrimps : 24"

gold: 50

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

line.length = 6

Ако пуснеш теста по условие програмата го разделя на 5 части (защото там има един space по-малко)

line.length = 5

Ти си предположил в твоя код че line.length винаги ще е равно на 5, ами не , не е, поне според тестовете на judge.

Трябва да смениш логика, на дължината на масива, защото няма да знаеш колко е дълъг, и ако е дълъг 5, то това ще е късмет :)

1
18/01/2016 16:50:08
LoKSET avatar LoKSET 160 Точки

Първоначално подцених задачата, понеже е първа и почнах със сравнително елементарно сплитване - брех, нищо не става. Мъчих се, въртях суках не и не - после с един изчерпателен регекс и всичко заспа - http://pastebin.com/Gk0zEfyK

Просто наистина няма смисъл да се решава по друг начин.

Между другото нещо аз ли не съм направил като хората или Джъджа не работи с ламбда изрази frown

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