Существует строка s из строчных букв латинского алфавита, которая повторяется бесконечное количество раз. По заданному целому числу n найдите и выведите количество букв a
в первых буквах бесконечной строки.
Пример
s = "abcac"
n = 10
Мы рассматриваем подстроку abcacabcac, первые 10 символов бесконечной строки. В подстроке есть 4 вхождения a
.
Ограничения
1 ≤ |s| ≤ 100,
1 ≤ n ≤ 10¹²
Ссылка на проблему
https://www.hackerrank.com/challenges/repeated-string/problem
Алгоритм
- Если n ≤ длины заданной строки s — Найти числовую частоту ‘a’ в s
- В противном случае
1. Найдите, сколько раз s можно повторить полностью — Найдите частноеof n / s.length().
2. Найдите количество символов s в последнем повторении — Найдите остатокof n % s.length() . - Общее количество вхождений a = количество повторений * (частота 'a' в 's') + частота 'a' в подстроке 's' от 0 до остатка.
Код
Ваши хлопки мотивируют меня писать больше. Пожалуйста, оставьте комментарий, если у вас есть вопросы!.