Добър вечер на всички!
Тъй като от доста време мисля над въпросната задача и не успявам, реших да пусна този пост.
Ще съм много благодарен, ако някой благоволи да помогне с насоки.
Това е моето решение, но покрива само някои от кейсовете: Title Search - Pastebin.com
Здравейте, не мисля, че съм достатъчно добър все още да давам съвети или да намирам грешки, но имах проблем със същата задача и ще пратя линк към въпроса и решението й, като ако желаете може директно да видите отговорите или съветите, които колега ми е дал.
Лека вечер.
Здравей,
Това решение беше на една колежка от курса @angelinaterzieva - дано не се сърди, че го споделям.
Дано да ви е от полза, защото тази задача всички ни мъчи, а е доста интересна
let word = gets();
let wordCopy = word;
let n = +gets();
for (let i = 0; i < n; i++) {
let currentWord = gets();
let currentIndex = 0;
let isFound = true;
for (let j = 0; j < currentWord.length; j++) {
let intPosition = word.indexOf(currentWord[j], currentIndex);
if (intPosition > -1) {
word = word.substring(0, intPosition) + word.substring(intPosition + 1);
currentIndex = intPosition;
} else {
isFound = false;
break;
}
}
if (isFound) {
wordCopy = word;
print(word);
} else {
word = wordCopy;
print(`No such title found!`);
}
}
Оу да, не чета
Да попитам, понеже нещо май не мога да схвана, тръгнах да решавам задачата и напълно я оплесках, тръгнах с насоките по тази задача, но няколко неща мисля, че не разбирам:
word.indexOf(currentWord[j], currentIndex) - тук идеята на currentIndex е такава, че ако случайно има няколко еднакви стойности да вземем индекса на този, който е до или по-близо до стойността на currentIndex ли?
Доколкото знам и прочетох substring() премахва дадена стойност на посочените индекси и с първия махаме стойността, която е на този индекс, но не мога да разбера каква е идеята на този след ±а.
Другото мисля, че го разбирам, но тези двете специално са ми каша.
То това е разковничето на задачата, че трябва да се ползват 2-та параметъра на indexOf, за да изрязва от стринга от правилното начало всеки път.
Благодаря Ви много за отзивите. Не знам защо моят код работи добре за едни кейсове, а за другите - не. Ще разгледам обстойно решението на момичето и ще видя какво съм пропуснал. :))