a — 1, b — 2, …, z — 26. Отпечаток строки w длины L при основании base и модуле mod равен
(вес(w[0])·base⁰ + вес(w[1])·base¹ + ... + вес(w[L − 1])·base^(L − 1)) mod mod.
Даны строка text и числа base, mod, length и fingerprint. Найдите самую левую подстроку text (непрерывный кусок) длины length, отпечаток которой равен fingerprint, и верните её. Гарантируется, что такая подстрока есть.text='bad', base=10, mod=100, length=2, fingerprint=12 → 'ba'
Отпечаток «ba» = 2·1 + 1·10 = 12 — совпадает сразу. У «ad» он был бы 1 + 4·10 = 41.
text='zebra', base=5, mod=9, length=2, fingerprint=6 → 'ze'
«ze»: 26 + 5·5 = 51, 51 mod 9 = 6. У «eb» отпечаток тоже 6 (5 + 2·5 = 15), но «ze» левее.
text='hello', base=3, mod=10, length=3, fingerprint=3 → 'llo'
«hel»: 8 + 5·3 + 12·9 = 131 → 1; «ell»: 5 + 12·3 + 12·9 = 149 → 9; «llo»: 12 + 12·3 + 15·9 = 183 → 3.
length ≤ text.length ≤ 2·10⁴base, mod < 2³¹fingerprint < modtext состоит только из строчных латинских буквtext='bad', base=10, mod=100, length=2, fingerprint=12
'ba'
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 17 тестов на сервере, включая скрытые.