В ней игроку дается строка из строчных символов латиницы, а он должен разбить ее на подстроки из последовательных символов алфавита. Такие подстроки далее будем называть правильными. В правильной подстроке после буквы “a” должна идти буква “b”, после “b” — “c” и так далее. При этом правильная подстрока может начинаться с любого символа. Например, строка “bcdefaabcef” должна быть разбита на “bcdef”+”a”+”abc”+”ef”. Обратите внимание, что подстрока может состоять и из одного символа.
Напишите программу, которая посчитает количество очков, полученных игроком за сделанное разбиение произвольной строки.
python
def calculate_score(s):
score = 0
n = len(s)
dp = [0] * n
for i in range(n):
if i > 0 and ord(s[i]) == ord(s[i-1]) + 1:
dp[i] = dp[i-1] + 1
else:
dp[i] = 1
score += dp[i]
return score
# Пример использования
string = "bcdefaabcef"
score = calculate_score(string)
print(score)
В данном примере результатом работы программы будет число 7, так как игрок получит 7 очков за сделанное разбиение строки "bcdefaabcef". Разбиение будет следующим: "bcdef" + "a" + "abc" + "e" + "f". Каждая подстрока является правильной, и за каждую правильную подстроку игрок получает одно очко. Всего в данном разбиении 7 правильных подстрок.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет