24.03 Прочие прототипы
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите количество подстрок, которые могут быть составлены перестановкой букв слова TIKTOK.
# Слово для анализа word = ’TIKTOK’ word_lenght = len(word) # Чтение содержимого файла s = open(’text.txt’).readline() count = 0 # Проверка всех подстрок длиной 6 (длина TIKTOK) for start in range(len(s) - word_lenght + 1): substring = s[start:start + word_lenght] # Если подстрока отсортирована совпадает с отсортированной TIKTOK, увеличиваем счетчик if sorted(substring) == sorted(word): count += 1 print(count)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 1 до 9 включительно. Определите количество подстрок, которые являются простым числом. Так для строки ABC13D72F такой подстрокой будет только 13, и ответ 1.
Примечание: все числа заключены между буквами или между буквой и началом или концом строки.
Решение с помощью замен
def simple(x):return x > 1 and all(x % y for y in range(2,int(x**0.5)+1)) f = open(’24_12946.txt’).readline().strip() for i in ’QWERTYUIOPASDFGHJKLZXCVBNM’: f = f.replace(i,’*’) f = f.split(’*’) simple_numbers = [x for x in f if len(x) > 0 and simple(int(x))] print(len(simple_numbers))
Решение с помощью регулярных выражений
def simple(x): return x > 1 and all(x % y for y in range(2,int(x**0.5)+1)) from re import * f = open("24_12946.txt") s = f.readline() a = findall(r’\d+’, s) simple_numbers = [x for x in a if len(x) > 0 and simple(int(x))] print(len(simple_numbers))
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 1 до 9 включительно. Определите количество различных чисел в файле, у которых ровно 6 нетривиальных делителей.
Примечание: все числа заключены между буквами или между буквой и началом или концом строки. Таким образом в строке ABC123D лишь одно число - 123.
def divs(x): d = set() for i in range(2, int(x**0.5) + 1): if x % i == 0: d |= {i,x//i} return sorted(d) f = open("24_12946.txt").readline().strip() for i in "QWERTYUIOPASDFGHJKLZXCVBNM": f = f.replace(i, "*") f = f.split("*") numb = [x for x in f if len(x) > 0 and len(divs(int(x))) == 6] print(len(set(numb)))
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 1 до 9 включительно. Определите количество подстрок, начинающихся с цифры, большей 0, за которой следуют буквы, причём количество букв равно цифре, с которой начинается подстрока.
s = open("24_12946.txt").readline() digits = "0123456789" count = 0 s = s.replace(’1’, ’ 1’) s = s.replace(’2’, ’ 2’) s = s.replace(’3’, ’ 3’) s = s.replace(’4’, ’ 4’) s = s.replace(’5’, ’ 5’) s = s.replace(’6’, ’ 6’) s = s.replace(’7’, ’ 7’) s = s.replace(’8’, ’ 8’) s = s.replace(’9’, ’ 9’) words = s.split() for i in words: digits = int(i[0]) if len(i) - 1 >= digits: count += 1 print(count)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 1 до 9 включительно. В файле перемешались числа 16сс с буквами. Нужно определить количество различных чисел, которые в 10сс больше 132.
Примечание: все числа заключены между буквами или между буквой и началом или концом строки, при этом символы ABCDEF считаются цифрами 16сс.
s = open("24_12946.txt").readline() m = "QWRTYUIOPSGHJKLZXVNM" for i in m: s = s.replace(i, "*") s = s.split("*") num = [x for x in s if len(x) > 0 and int(x, 16) > 132] print(len(set(num)))
Ошибка.
Попробуйте повторить позже
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите количество подстрок длиной 4, которые могут быть палиндромами, если заменить ровно один символ. В ответе укажите количество таких подстрок.
s = open("24_M2.txt").readline() count = 0 for i in range(len(s)-3): if (s[i] == s[i+3] and s[i+1] != s[i+2]) or (s[i] != s[i+3] and s[i+1] == s[i+2]): #нам подходят два случая: когда первый и последний символы совпадают, а второй и третий - нет, #и когда первый и последний символы не совпадают, а второй и третий - да. #Только в таких случаях мы можем образовать палиндром заменой ровно одного символа. count += 1 print(count)