Loading...
n.dimitrova avatar n.dimitrova 0 Точки

Проблем със задача The pianist от Programming Fundamentals Final Exam Retake 15.08.2020

Здравейте, 

Има проблем с тази задача, защото не мога да разбера изхода как трябва да се отпечата. Гледах видео от стари лекции и там е по азбучен ред на ключа, но явно има промяна в условието, защото сега е по друг начин. 

Ето линк към моето решение: https://pastebin.com/Pe9jA7ae 

Линк към условието: https://judge.softuni.org/Contests/Practice/Index/2525#2

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

Super code, just drop the sorting and it passes 100% (no sorting requirements stated in Exam).

Allegro vivace, ;-)

function thePianist(input) {
    let catalog = {};
    let numberOfPieses = Number(input.shift());
 
    for(let i = 0; i < numberOfPieses; i++) {
        let [name, composer, key] = input.shift().split('|');
 
        catalog[name] = {
            composer, 
            key
        }
    }
 
    while (input[0] != "Stop") {
        let tokens = input.shift().split('|');
        let command = tokens[0];
        let name = tokens[1];
         if(command == "Add") {
            if(catalog[name] != undefined) {
                console.log(`${name} is already in the collection!`)
            } else {
                catalog[name] = {
                    composer: tokens[2],
                    key: tokens[3]
                };
 
                console.log(`${name} by ${tokens[2]} in ${tokens[3]} added to the collection!`)
            }
 
        }  else  if(command == "Remove") {
            if(catalog[name] == undefined) {
                console.log(`Invalid operation! ${name} does not exist in the collection.`)
            } else {
                delete catalog[name];
                console.log(`Successfully removed ${name}!`)
            }
        } else if(command == "ChangeKey") {
            if(catalog[name] == undefined) {
                console.log(`Invalid operation! ${name} does not exist in the collection.`);
            } else {
                catalog[name].key = tokens[2];
                console.log(`Changed the key of ${name} to ${tokens[2]}!`)
            }
        }
    }
 
    // let sorted = Object.entries(catalog).sort((a, b) => {
    //     let nameA = a[0];
    //     let nameB = b[0];
 
    //     let composerA = a[1].composer;
    //     let composerB = b[1].composer;
 
    //     return nameA.localeCompare(nameB) || composerA.localeCompare(composerB);
    // });
 
    // for (let [name, piece] of sorted) {
    for (let [name, piece] of Object.entries(catalog)) {
        console.log(`${name} -> Composer: ${piece.composer}, Key: ${piece.key}`)
    }
}

 

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