Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 0 до 9 включительно. Определите в прилагаемом файле максимальное количество идущих подряд символов, которые могут представлять запись числа в шестнадцатеричной системе счисления.
Для выполнения этого задания следует написать программу. Числа с незначащими нулями в ответ брать не следует.
Как будем решать задачу
Задачу на обработку строки, сохраненной в файле, решали ранее в этом блоге. (Задача. Последовательность максимальной длины, которая содержит буквы строго в алфавитном порядке, т.е. ABCD. Читать)
- Считаем строку из файла
- Получим все возможные подстроки конструкцией вложенных циклов (публикация Как получить все возможные подстроки из заданной строки)
- В текущей подстроке проверим символ на принадлежность алфавиту 16-ой с.с. Если это так, будем копить счетчик 16-ых цифр.
- Если счетчик 16-ых цифр равен длине подстроки, это значит, что в ней нет посторонних символов (также добавим условие, что первый символ подстроки это не цифра 0), найдем максимум длины подстроки, иначе прервем обработку подстроки break.
Программа решения задачи на языке Python
f = open('24_10724.txt')
s = f.readline()
m = 0
alf = '0123456789ABCDEF'
for i in range(len(s)):
k = 0
for j in range(i,len(s)):
if s[j] in alf:
k+=1
if k==len(s[i:j+1]) and s[i:j+1][0]!='0':
m = max(m,len(s[i:j+1]))
else:
break
print(m)
Ответ: 21
Комментариев нет:
Отправить комментарий