Advertisement
nq1s788

Untitled

Oct 2nd, 2024 (edited)
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.75 KB | None | 0 0
  1. Посчитаем на каждом префиксе строки, сколько букв нам нужно изменить, для того чтобы весь префикс состоял из всех заглавных букв. Так же, посчитаем на каждом суффиксе, сколько букв нам нужно изменить, для того чтобы весь суффикс состоял из строчных букв. Пусть p[i] -- кол-во букв, которые нужно изменить, для того чтобы префикс длины i состоял полностью из заглавных, s[i] -- кол-во букв, которые нужно изменить, для того чтобы суффикс длины i состоял полностью из строчных.
  2. Тогда p[i] + s[n - i] -- сколько букв нужно изменить, чтобы в строке первые i были заглавными, остальные строчными. Нам нужно найти минимум среди всех i.
  3.  
  4. Пример кода на python:
  5. s = input()
  6. n = len(s)
  7. p = [0] * (n + 1)
  8. for i in range(n):
  9.     p[i + 1] = p[i] + int(s[i].islower()) #добавляем единицу к значению предыдущего префикса, если текущая буква маленькая (ее нужно поменять)
  10. s = [0] * (n + 1)
  11. for i in range(n):
  12.     s[i + 1] = s[i] + int(!(s[n - i - 1].islower())) #добавляем единицу к значению предыдущего суффикса, если текущая буква заглавная (ее нужно поменять)
  13. answ = n
  14. for i in range(n + 1):
  15.     answ = min(answ, p[i] + s[n - i])
  16. print(answ)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement