'''
Текстовый файл 24-j4.txt состоит не более чем из 106 символов J, O, B, S.
Сколько раз встречаются комбинации «BOSS» при этом до и после этого слова нет символа «J»?
Например, комбинации «JBOSS», «BOSSJ» и «JBOSSJ» не должны учитываться.
'''

with open('#24 3345p.txt') as f:
    s = f.read()

cnt = 0

# не знал как рассмотреть крайние варианты (слева и справа), взял в лоб
# можно и глазками посмотреть
if s[0] == 'B' and s[1] == 'O' and s[2] == 'S' and s[3] == 'S' and s[4] != 'J':
    cnt += 1
if s[-5] != 'J' and s[-4] == 'B' and s[-3] == 'O' and s[-2] == 'S' and s[-1] == 'S':
    cnt += 1

for i in range(5, len(s)):
    if s[i - 5] != 'J' and s[i - 4] == 'B' and s[i - 3] == 'O' and s[i - 2] == 'S' and s[i - 1] == 'S' and s[i] != 'J':
        cnt += 1

print(cnt)

76ab1984acb448e51b07a05e8f5a892428c5b336
<mask token>

<mask token>
with open('#24 3345p.txt') as f:
    s = f.read()
<mask token>
if s[0] == 'B' and s[1] == 'O' and s[2] == 'S' and s[3] == 'S' and s[4] != 'J':
    cnt += 1
if s[-5] != 'J' and s[-4] == 'B' and s[-3] == 'O' and s[-2] == 'S' and s[-1
    ] == 'S':
    cnt += 1
for i in range(5, len(s)):
    if s[i - 5] != 'J' and s[i - 4] == 'B' and s[i - 3] == 'O' and s[i - 2
        ] == 'S' and s[i - 1] == 'S' and s[i] != 'J':
        cnt += 1
print(cnt)

<mask token>
with open('#24 3345p.txt') as f:
    s = f.read()
cnt = 0
if s[0] == 'B' and s[1] == 'O' and s[2] == 'S' and s[3] == 'S' and s[4] != 'J':
    cnt += 1
if s[-5] != 'J' and s[-4] == 'B' and s[-3] == 'O' and s[-2] == 'S' and s[-1
    ] == 'S':
    cnt += 1
for i in range(5, len(s)):
    if s[i - 5] != 'J' and s[i - 4] == 'B' and s[i - 3] == 'O' and s[i - 2
        ] == 'S' and s[i - 1] == 'S' and s[i] != 'J':
        cnt += 1
print(cnt)

'''
Текстовый файл 24-j4.txt состоит не более чем из 106 символов J, O, B, S.
Сколько раз встречаются комбинации «BOSS» при этом до и после этого слова нет символа «J»?
Например, комбинации «JBOSS», «BOSSJ» и «JBOSSJ» не должны учитываться.
'''

with open('#24 3345p.txt') as f:
    s = f.read()

cnt = 0

# не знал как рассмотреть крайние варианты (слева и справа), взял в лоб
# можно и глазками посмотреть
if s[0] == 'B' and s[1] == 'O' and s[2] == 'S' and s[3] == 'S' and s[4] != 'J':
    cnt += 1
if s[-5] != 'J' and s[-4] == 'B' and s[-3] == 'O' and s[-2] == 'S' and s[-1] == 'S':
    cnt += 1

for i in range(5, len(s)):
    if s[i - 5] != 'J' and s[i - 4] == 'B' and s[i - 3] == 'O' and s[i - 2] == 'S' and s[i - 1] == 'S' and s[i] != 'J':
        cnt += 1

print(cnt)
