Loading...
XinfinityX avatar XinfinityX 2 Точки

Star Enigma (JS)

Здравейте. Имам проблем с решаването на тази задача и не мога да си открия грешката. Изобщо нямам идея какъв инпут подава джъдж че ми изкарва само 80/100. Гърмят ми Test 1 и Test 2. От вчера я мъча обаче не успявам да я докарам до 100/100. Ако може някой да ми помогне да си видя грешката за да мога да не я повтарям много бих се радвал. Сега след поредния няколко часов неуспешен опит да я докарам до 100 точки мисля да си лягам че стана почти 2ч и едва си държа очите отворени.
https://pastebin.com/57dRn5pK

Условието е тук
https://judge.softuni.org/Contests/1709

Тагове:
0
JavaScript Fundamentals
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

;-)

https://softuni.bg/forum/41545/star-enigma-js

https://softuni.bg/forum/31587/04-star-enigma-80-100

 

1
XinfinityX avatar XinfinityX 2 Точки

Да, аз ги гледах тези теми, но така и не установих проблема със стария ми код. Обаче опитах да я реша отначало малко по различно и тогава вече осъзнах къде ми е грешката. Благодаря! 
https://pastebin.com/B1M1RW5A ето pastebin на задачата 100/100.
Натъкнах се на два проблема в новия ми код и те са:

1. Когато имаш само едно съобщение и то ти е подадено като вече декриптирано, тук на 27-ми ред while((planet = regex.exec(messages)) !== null) връща null, а реално това не е вярно, защото вече има валидно декриптирано съобщение, но просто индекса на регекса не е 0. И като му добавиш regex.lastIndex = 0; там на 26-ти ред дефакто му зануляваш индекса и вече почва да брои от първото съобщение в масива и влиза в while и всичко е точно.

2. На 14-ти ред му бях написал само let lettersCount = message.match(regex2).length; и ми гърмеше с 90/100 RunTime Error в Judge.
Оказа се, че просто когато няма нито една от буквите s,t,a,r в съобщението и в опит да вземе дължината на дефакто празен масив и гърми. Затова поправяме на let lettersCount = message.match(regex2) && message.match(regex2).length;
Демек да върне поне null ако масива няма дължина а не да ми гърми :D .

Дано съм помогнал на бъдещи курсисти във Fundamentals. :)

2
16/04/2023 21:43:40
Axiomatik avatar Axiomatik 2422 Точки

Super, yes

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