Алгоритм решения задания 15. Часть 3
Учимся решать 15 задания третьего типа
Читать
Текстовый файл состоит из символов F, G, Q, R, S и W.
Определите в этом файле минимальное количество идущих подряд символов, среди которых подстрока RSQ встречается ровно 130 раз, при этом искомая последовательность не оканчивается символом Q.
Правильный ответ:
497
with open('2423.txt', 'r') as file:
line = file.readline()
line_len = len(line)
data = line.split('RSQ')
ans = float('inf')
for i in range(len(data) - 130):
RSQ_130_times = 'RSQ' + 'RSQ'.join(data[i:i+129]) + 'RSQ'
len_RSQ_130_times = len(RSQ_130_times)
if len_RSQ_130_times < ans:
last_pos = line.find(RSQ_130_times) + len_RSQ_130_times - 1
plus_not_Q = 0
while last_pos < line_len and line[last_pos] == 'Q':
last_pos += 1
plus_not_Q += 1
ans = min(ans, len_RSQ_130_times + plus_not_Q)
print(ans)
