Глава 9.1. Задача: пет специални букви - грешка в кода, посочен в Насоки и подсказки
Closed this issue · 1 comments
Линк към файла
Описание
В описанието на решението се казва:
За начало ще добавим първата буква към началния стринг.
След това ще обиколим останалите 4 с цикъл, проверявайки всеки път дали ги има със следното условие и метода indexOf(…).
Променливата l на цикъла е обвързана с индексите на символите в стринга current, което означава, че максималната стойност, която тя трябва да приеме е 4. По-нататък обаче, за установяване на теглото на символите от стринга unique се използва следния код:
Тук виждаме, че променливата l е обвързана с индексите на стринга unique. Следователно, ако стринга current има стойност "aaaab", символът 'b' ще има индекс 4 и ще бъде добавен към стринга unique, когато l = 4. В unique, обаче индексът на 'b' ще бъде 1. Което означава, че посоченият switch няма да проработи, защото излиза извън обхват и компилацията на кода ще бъде прекъсната от грешка.
За пресмятането на теглото на стринга unique е посочен кода:
Той ще доведе до грешна стойност на sum, защото отново е обвързан с l. При current = "aaaab", към 1*(теглото на 'a') няма да добавим 2*(теглото на 'b'), а 4*(теглото на 'b').
Текущ текст
Текст след поправката
fixed



