Loading...
krustev_84 avatar krustev_84 7 Точки

Проблем с Melrah Shake -> JS Fundamentals -> 0/100 .

Здравейте...

 Нужна ми е малко помощ за последната задача от този линк. Ето моето решение , което във VSC  си върви добре . Проверявам за два намерени шаблона и тогава шейквам , орязвам си шаблона, брейквам , върви ми с всички знаци от ascii таблицата, обаче дее***ба, джъдж ми дава 0/100 и нямам никаква идея защо. Мислех си да не е от While , но не тествах с друг цикъл . Възможно е нещо от условието да изпускам, защото инак нямаше и при мен да тръгва. Та...ако някой има идея къде греша , моля да ми помогне. 

Благодаря !

Тагове:
0
JavaScript Fundamentals
krasizorbov avatar krasizorbov 548 Точки

ето с някои поправки но може да го рефакторираш както ти е удобно на теб:

function merlahShake(input) {
 
    let text = input.shift();
    let pattern = input.shift();
 
    while (pattern.length > 0) {
        let firstMatch = text.indexOf(pattern);
        let lastMatch = text.lastIndexOf(pattern);
        if ((firstMatch > -1 && lastMatch > -1) && firstMatch !== lastMatch) {
        let firstRemove = text.substr(0, firstMatch);
        let lastRemove = text.substr(firstMatch + pattern.length);
        text = firstRemove + lastRemove;
        lastMatch = text.lastIndexOf(pattern);
        firstRemove = text.substring(0, lastMatch);
        lastRemove = text.substring(lastMatch + pattern.length);
        text = firstRemove + lastRemove;
        let pat1 = pattern.substring(0, pattern.length / 2);
        let pat2 = pattern.substring(pattern.length / 2 + 1);
        pattern = pat1 + pat2;
        console.log('Shaked it.');
        } else {
            break;
        }
    }
console.log('No shake.');
console.log(text);
}

0
krustev_84 avatar krustev_84 7 Точки

Да рабирам ли ,че проблемът е в .replace() ... ? Като гледам е една от основните разлики . Искаше ми да схвана  къде  греша ама нещо се запъвам. Ще дебъгна още един - два пъти твоя код и дано успея. Инак, много ти благодаря за помощта и усилието .

Успешен ден !

0
03/10/2020 13:45:23
krasizorbov avatar krasizorbov 548 Точки

след като преместих:

console.log('No shake.');
console.log(text);

да се принтира накрая даде 60/100, значи логиката се чупи в while лупа, така че там се опитай да си хванеш грешката.

0
krustev_84 avatar krustev_84 7 Точки

Мдааа...разбрах от къде идва проблема . От .replace() e. Защото ако имам такъв вход  >> ['stastasasssastasta', 'sta'] , няма да махне първия и последния шаблон ,а първите два . За това остана или твоя вариант или безумието , което аз сътворих , само и само да проследя всяка стъпка . Трябваше да сплитвам и да джойнвам преди и след всеки .splice() , но накрая ми излезе както трява и взех 100 / 100.  >>  https://pastebin.com/hHpX1Mfh

Благодаря ти отново за насоките !

 

 

 

0
krasizorbov avatar krasizorbov 548 Точки

а да идеята беше ти сам да си откриеш грешката :)

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