Loading...

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

Tzigoriyn avatar Tzigoriyn 44 Точки

01. World Tour

Ако някой има възможност да помогне?

Какво стана с този изпит така и не разбрах 66/100 на първа задача:

https://pastebin.com/0dZpZ9SD

Проблем с тестове 5 и 6

Тагове:
0
JavaScript Fundamentals
Dukoff avatar Dukoff 2 Точки

Здравей!

Гледам, че и ти си направил същата грешка като мен (и аз имам 66/100). Това, което забелязах като разлика с други решения е, че в твоят код (и моя) принтираме в if тялото, а не извън него. Тоест, идеята е да се принтира дори и да не са валидни входните данни. Според мен не бяха напълно ясни условията на задачите, но най-вероятно проблема е в мен, тъй като има немалко хора изкарали пълния брой точки.

0
09/08/2020 22:58:53
Tzigoriyn avatar Tzigoriyn 44 Точки

Здрасти приятел, аз за първи път решавам такава задача, всъщност вчера реших една, но ако има някой който ще ти покаже твоята грешка, а не просто друго решение тук е мястото. Невероятна помощ, да ти покаже слабостите на твоята логика за да я подобриш. Успех!

0
Dukoff avatar Dukoff 2 Точки

Напълно съм съгласен!

Скоро трябва да може да достъпим същия изпит и да се упражняваме на него.
Имай това предвид, за принтирането извън if-a.

0
Vassil77 avatar Vassil77 15 Точки

Благодаря Ви. Наистина след принтирането извън "if......"  дава 100 точки. Според мен условието е НЕкоректно защото иска точно обратното.

0
MapoBG avatar MapoBG 36 Точки

Здравейте,

Както колегата Dukoff е отбелязал, в кода от ОП не се печата във всеки случай. Също така при

  1.                 if (trip.includes(findIndex)) {

  2.                     trip = trip.replace(findIndex, newDest);

  3.                     console.log(trip);

  4.                 }

Тука изпускаш случая с повече от едно съвпадения и сменяш само първото. Това е тест 6

 

Моя въпрос е, защо гърми с Runtime Error, когато му се добави цикъл, за да може да замени всички съвпадения???

https://pastebin.com/nY3qCB6R 

Едниственото, което се сетих е, че може да се подадът еднакви стрингове, затова и добавих една проверка, но не е от това....

Задача:

https://judge.softuni.bg/Contests/Practice/Index/2518#0

2
14/09/2020 14:58:37
willystyle avatar willystyle 2472 Точки

Знаеш ли какво се случва, мисля че подават нов стринг който съдържа стария стринг и твоя replace зацикля, понеже той както е направен сменя само първия мач, затова предлагам да замениш:
 

if (oldString !== newString) {
    while (allLocations.includes(oldString)) {
        allLocations = allLocations.replace(oldString, newString);
    }
}

с един от двата варианта, сложен replace с функция с offset:

let offset = 0;
while (allLocations.indexOf(oldString, offset) >= 0) {
    allLocations = allLocations.replace(oldString, (oldString, offset) => newString);
    offset = allLocations.indexOf(oldString, offset) + newString.length;
}

или replace с регекс с глобален флаг (проблема е че подлежи на регекс инжекция, но в тестовете няма проблемни символи и минава 100/100):

let rgx = new RegExp(oldString, 'g');
allLocations = allLocations.replace(rgx, newString);

 

1
MapoBG avatar MapoBG 36 Точки

Отново много благодаря!

Странното е, че при ползване и на двата варианта предложени от теб, пак ми дава 87/100, но този път не е с Runtime error, а обикновена грешка(грешен резултат Х)....

https://pastebin.com/iC2ysQzh

https://ibb.co/ncRn3b0

https://ibb.co/Y8zWzdX

Оффсета все още нищо не ми говори - не е тема засегната в Fundamentials....

Според мен е или грешка в теста или някой стабилно се е изгаврил с колегите на изпита, понеже това е изпитна задача и по описание, трябва да се решава само с обикновени стрингови операции(задача 1); 2-ра е с регЕкс, 3-та с обекти)....

Поздрави,

1
willystyle avatar willystyle 2472 Точки

да, има още един пропуск при case "Remove Stop" (да махнеш = от валидацията за горен индекс) :

if (startIndex >= 0 && startIndex < allLocations.length) && (endIndex >= 0 && endIndex < allLocations.length)

https://pastebin.com/SU1J157Q

или

https://pastebin.com/bR5Be23v

офсета е просто отместване, indexOf може да му се каже от кой индекс (офсет) нататък да търси, съответно replace малко по-трудно се ползва с offset, както виждаш

1
13/09/2020 17:24:10
tsvetoslav.petkov avatar tsvetoslav.petkov 2 Точки

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

Най-лесно става:

if(text.includes(oldString)){
            let splitted = text.split(oldString);
            text = splitted.join(newString);
        }

 

1
Vassil77 avatar Vassil77 15 Точки

Много Благодаря! 

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