Професионална програма
Loading...
MartinMP avatar MartinMP 2 Точки

Rage Quit - JS fund

Здравейте,

Имам проблем със следната задача:

    2. Rage Quit https://softuni.bg/trainings/resources/officedocument/49636/regular-expressions-more-exercise-js-fundamentals-may-2020/2832

Моят код: 

   https://pastebin.com/YrM3XBqP

проблема ми е, че при inpute-!btI17z=E:DMJ19U1Tvg VQ>11P"qCmo.-0YHYu~o%/%b.}a[=d15fz^"{0^/pg.Ft{W12`aD<l&$W&)*yF1WLV9_GmTf(d0($!$`e/{D'xi]-~17 *%p"%|N>zq@ %xBD18<Y(fHh`@gu#Z#p"Z<v13fI]':\Iz.17*W:\mwV`z-15g@hUYE{_$~}+X%*nytkW15

в него се съдържа "\" и с моя код не го приема като уникален символ и съотвено получвам "Unique symbols used: 53" вместо "Unique symbols used: 54". или поне аз така виждам, че ми е грешката.

Какво мога да променя в кода си, за 100/100? или Какво е по-подходящото решение?

 

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

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

function solve(input) {
    let series = input[0].split(/[0-9]+/).filter((x) => x != '');
    let repeaters = input[0].split(/[^0-9]+/).filter((x) => x != '');
    let result = '';
    for (let i = 0; i < series.length; i++) {
        result += series[i].toUpperCase().repeat(repeaters[i]);
    }
    console.log(`Unique symbols used: ${[...new Set(result)].length}`);
    console.log(result);
}

 

0
MartinMP avatar MartinMP 2 Точки

Да, благодаря за отговорите! Видях, и в решението на krasizorbov, че накрая се броят уникалните символи. За нулата не бях се сетил.

1