chmod 755 test.sh
./test.sh
Tests:
- sharks.txt, tasc => 60
- tenet_review.txt, car => 751
- tenet_review.txt, sawit => 84
- radio.txt, cacc => 432
Algo:
Решение основывается на методе динамического программирования. Рассматривая очередное слово, посмотрим i-ую букву key_word и букву на i-ой позиции в current_word. Так мы предполаем что это слово должно быть i-ым в шифре.
Если буквы совпадают, то увеличим число совпадений для этой позиции шифра.
После просмотра очередного слова, переходя к следущему сдвинем вправо массив dp, чтобы корректно обработать следующее слово, так как в нем уже нужно будет смотреть буквы на позициях +1 от предыдущего, и обнулим dp[0], чтобы начать новый ряд слов.
Если в какой то момент мы получили совпадение букв равное длину key_word, то мы нашли ответ на позиции words_cnt - длина key_word в 0 индексации.
Если за весь текст, шифр с заданным ключевым словом не найден, то вернем -1.