Top.Mail.Ru
Ответы
Аватар пользователя
2 месяца назад
от

Напишите пж код на Python для решения задачи ниже, имя текстового файла 17.txt

В текстовом файле находится цепочка из заглавных латинских букв (A..Z). Найдите длину самой длинной подцепочки, начинающейся с символа A и заканчивающейся символом Z, причем внутри этой подцепочки больше нет символов A и Z, а другие символы встречаются в произвольном количестве и порядке .

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
2мес

# Открываем файл и читаем строку
with open("17.txt", "r") as f:
s = f.readline().strip()

# Переменные для хранения результатов
max_length = 0 # Максимальная длина найденной подцепочки
current_length = 0 # Текущая длина подцепочки
start_found = False # Нашли ли мы начальную A

# Проходим по каждому символу в строке
for i in range(len(s)):
# Если нашли начальную A
if s[i] == 'A' and not start_found:
start_found = True
current_length = 1
# Если после A нашли другой символ
elif start_found and s[i] != 'A' and s[i] != 'Z':
current_length += 1
# Если нашли конечную Z после A
elif start_found and s[i] == 'Z':
current_length += 1
max_length = max(max_length, current_length)
start_found = False
current_length = 0
# Если нашли A или Z в неподходящем месте
elif start_found and (s[i] == 'A' or s[i] == 'Z'):
start_found = False
current_length = 0

print(max_length)

Этот код:
1. Открывает файл и считывает строку
2. Использует переменные для отслеживания:* максимальной длины найденной подцепочки
* текущей длины
* наличия начальной A
3. Проходит по каждому символу:* ищет начальную A
* считает символы между A и Z
* проверяет конечную Z
* обновляет максимальную длину при необходимости
4. Учитывает все условия задачи:* подцепочка должна начинаться с A и заканчиваться Z
* внутри не должно быть A и Z
* другие символы допускаются
Результат выводится в конце выполнения программы.

Аватар пользователя
Знаток
2мес

Думаю, данный код правильный:
f, i=open('17.txt').read(), ''
for j in range(len(f)):
i+=str(f[j])
mx=0
i=i.replace('A', ' A').replace('Z', 'Z ')
i=i.split()
for n in range(len(i)):
if i[n][0]=='A' and i[n][-1]=='Z' and mx<len(i[n]):
mx=len(i[n])
print(mx)

Аватар пользователя
2мес

with open('17.txt', 'r') as file:
s = file.read ().strip()

max_length = 0
current_length = 0
started = False

for char in s:
if char == 'A' and not started:
started = True
current_length = 1
elif char == 'Z' and started:
current_length += 1
if current_length > max_length:
max_length = current_length
started = False
current_length = 0
elif started:
current_length += 1

print(max_length)

ну по идеи так