@b3br1ch

Почему неправильно работает код?

Текстовый файл содержит строки различной длины. Общий объём файла не превышает 1 Мбайт. Строки содержат только заглавные буквы латинского алфавита (ABC…Z).

В строках, содержащих менее 25 букв A, нужно определить и вывести максимальное расстояние между одинаковыми буквами в одной строке.

with open('24.txt') as f:
    a = [str(x) for x in f]
    b = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    list(b)
    maxcount = 0
    for s in range(0, len(a)):
        acount = 0
        bad = 0
        f = []
        for x in a[s]:
            f.append(x)
            if x == 'A':
                acount += 1
        if acount < 25:
            for m in b:
                a1 = f.index(m)
                f.reverse()
                a2 = f.index(m)
                if max(a1, a2) - min(a1, a2) > maxcount:
                    maxcount = max(a1, a2) - min(a1, a2)
        else:
            bad += 1
    print(maxcount, bad)
  • Вопрос задан
  • 592 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Kadabrov
начните с изучения чтения файла построчно
with open('1.txt', 'r') as f:
    raw_lines = f.readlines()
print(raw_lines)
for line in raw_lines:
    count_a, count_result = 0, 0
    if line.count('A') < 25:
        for symbol in line:
            if symbol == 'A':
                count_a += 1
            else:
                if count_result < count_a:
                    count_result = count_a
                    count_a = 0
        if count_result == 0 and count_a > 0:
            count_result = count_a
        print(f'Max distance between A in line -- {count_result}')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы