Ошибка.
Попробуйте повторить позже
Текстовый файл содержит только заглавные буквы латинского алфавита (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)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 1 до 9 включительно. В файле перемешались числа 16сс с буквами. Нужно определить количество различных чисел, которые в 10сс больше 132.
Примечание: все числа заключены между буквами или между буквой и началом или концом строки.
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)))
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 1 до 9 включительно. Определите количество подстрок, начинающихся с цифры, большей 0, за которой следуют буквы, причём количество букв равно цифре, с которой начинается подстрока.
s = open(’24_12946.txt’).readline() digits = ’0123456789’ count = 0 words = [] for i in range(len(s)): # Чтобы иметь возможность проверить подстроки в конце строки, воспользуемся # контролируемым блоком кода, чтобы избежать ошибки выхода за границы индексации try: if s[i] in digits and int(s[i]) > 0: if all(s[j] not in digits for j in range(i + 1, i + int(s[i]) + 1)): count += 1 words += [s[i:i + int(s[i]) + 1]] except IndexError: pass print(len(words))
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов, обозначающих заглавные буквы латинского алфавита и цифры от 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 включительно. Определите количество подстрок, которые являются простым числом.
Примечание: все числа заключены между буквами или между буквой и началом или концом строки. Так для строки ABC13D ответом будет 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))
Ошибка.
Попробуйте повторить позже
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите количество подстрок, которые могут быть составлены перестановкой букв слова TIKTOK.
from itertools import permutations s = open(’24_13085.txt’).readline() count = 0 for x in set(permutations(’TIKTOK’)): word = ’’.join(x) count += s.count(word) print(count)
Ошибка.
Попробуйте повторить позже
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определите количество подстрок, которые могут быть составлены перестановкой букв слова MEOW.
from itertools import permutations s = open(’24_13085.txt’).readline() count = 0 for x in permutations(’MEOW’): word = ’’.join(x) count += s.count(word) print(count)
Ошибка.
Попробуйте повторить позже
Текстовый файл содержит только заглавные буквы латинского алфавита (ABC…Z). Определить количество палиндромов длиной 5, в которых согласных букв больше гласных.
s = open(’24_13085.txt’).readline() words = [s[i:i+5] for i in range(len(s)-4) if s[i:i+5] == s[i:i+5][::-1]] m = ’AEIOUY’ count = 0 for i in words: gl = [x for x in i if x in m] sogl = [x for x in i if x not in m] if len(sogl) > len(gl): count += 1 print(count)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов T, U, V, W, X, Y и Z. Определите минимальную длину подстроки, содержащую ровно 70 символов Y.
Для выполнения этого задания следует написать программу.
f = open(’24_20.txt’) s = f.readline() mini = 10**10 count = 0 pos = [] for i in range(len(s)): if s[i] == ’Y’: pos.append(i) for j in range(1, len(pos)-69): count=pos[j+69] - pos[j] + 1 if count < mini: mini = count print(mini)
Ошибка.
Попробуйте повторить позже
Текстовый файл 24_10.txt содержит строку из заглавных латинских букв, всего не более чем из символов. Определите количество подстрок длиной не менее 50 и не более 100 символов, которые начинаются и заканчиваются буквой P и не содержат других букв P (кроме первой и последней), а также содержит минимум две буквы I и не содержит букв O.
f = open(’24_10.txt’) s = f.readline() s = s.replace(’P’, ’P P’) a = s.split() c = 0 for i in a: if (i[0] == ’P’) and (i[-1] == ’P’) and (len(i) >= 50) \ and (len(i) <= 100) and (i.count(’I’) >= 2) and (not ’O’ in i): c += 1 print(c)
Ошибка.
Попробуйте повторить позже
В текстовом файле 8.txt. находится цепочка из символов латинского алфавита A, B, C, D, E. Найдите длину самой длинной подцепочки, не содержащей сочетания DA.
s = open(’24-2.txt’).readline().replace(’DA’,’D A’).split(’ ’) mx = 0 for i in s: if len(i) > mx: mx = len(i) print(mx)
Ошибка.
Попробуйте повторить позже
Текстовый файл 1.txt содержит строку из заглавных латинских букв D, G и С, всего не более чем из символов. Определите максимальное количество идущих подряд троек символов CGG или DDG.
#Решение через replace f = open(’1.txt’) s = f.readline() #Заменяем CGG и DDG на * s = s.replace(’CGG’,’*’).replace(’DDG’,’*’) #Запускаем цикл,который проверяет есть ли в строке i подряд идущих троек for i in range(len(s)): if ’*’*i in s: print(i) #Решение через циклы file = open(’1.txt’) s = file.read() max_counter = 0 temp_counter = 0 for start_step in range(3): for index in range(start_step, len(s) - len(s) % 3 - 2, 3): if s[index:index + 3] == "CGG" or s[index:index + 3] == "DDG": temp_counter += 1 max_counter = max(max_counter, temp_counter) else: temp_counter = 0 print(max_counter)
Ошибка.
Попробуйте повторить позже
В текстовом файле 3.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите четвертое вхождение подцепочки «DFAAB» и запишите в ответе букву, которая стоит перед этой подцепочкой.
f = open(’3.txt’)#чтение файла a = f.readline() a = a.replace(’DFAAB’, ’*’, 4) #меняем первые 4 print(a[a.rfind(’*’)-1])
Ошибка.
Попробуйте повторить позже
В текстовом файле находится цепочка из символов латинского алфавита A, B, C, D, E, F. Найдите длину самой длинной подцепочки, состоящей из символов A, C, D (в любом порядке).
В ответ запишите количество найденных символов.
s = open(’24_5.txt’).readline() s = s.replace(’B’, ’ ’) s = s.replace(’E’, ’ ’) s = s.replace(’F’, ’ ’) count = 0 for i in s.split(): count = max(count, len(i)) print(count)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов A, B и цифр 1, 2. Определите максимальное количество идущих подряд четверок символов вида буква + двухзначное число + буква.
В ответ запишите количество найденных четверок.
s = open(’24_4.txt’).readline() s = s.replace(’A’, ’B’).replace(’1’, ’2’) s = s.replace("B22B22B", "B22B B22B") s = s.replace(’B22B’, ’*’).replace(’2’, ’ ’).replace(’B’, ’ ’) print(max(len(i) for i in s.split()))
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из заглавных букв латинского алфавита. Определите максимальное количество подряд идущих символов, среди которых нет сочетания KK, но есть сочетание FM.
В ответ запишите количество найденных символов.
s = open(’24_3.txt’).readline() while ’KK’ in s: s = s.replace(’KK’, ’K K’) n = 0 for i in s.split(): if ’FM’ in i: n = max(n, len(i)) print(n)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов A, B, C. Определите максимальную длину подпоследовательности подряд идущих символов, состоящую из троек вида гласная + согласная + согласная.
В ответе запишите одно число – значение найденной длины.
s = open(’24_2.txt’).readline() s = s.replace(’ABB’, ’X’).replace(’ABC’, ’X’).replace(’ACB’, ’X’).replace(’ACC’, ’X’) m = 0 mmax = 0 for i in s: if i == ’X’: m += 1 if m > mmax: mmax = m else: m = 0 print(mmax*3)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит из символов A, C, D, F и U. Определите максимальное количество идущих подряд символов, среди которых не более 3 пар вида гласная + согласная в прилагаемом файле. В ответ запишите количество найденных символов.
s = open(’24_1.txt’).readline() s = s.replace(’A’, ’U’).replace(’F’,’C’).replace(’D’, ’C’) s = s.replace(’UC’,’U C’).split() m = 0 for i in range(len(s)-3): s1 = s[i] + s[i+1] + s[i+2] + s[i+3] if len(s1) > m: m = len(s1) print(m)
Ошибка.
Попробуйте повторить позже
В единственной строке файла находится строка состоящая не более чем из маленьких букв английского алфавита. Определите можно ли добавить некоторое(возможно нулевое) количество букв «a» в начало строки, чтобы строка стала палиндромом.
Напомним вам, что палиндромом называются строки, которые читаются одинаково как слева-направо, так и справа-налево.
В ответ запишите наименьшее необходимое количество букв «a», а если строку s невозможно сделать палиндромом проделывая описанную операцию — запишите в ответ .
Оптимальное решение: проверим, что вся строка не состоит только из букв «a», потому что если она состоит, то она уже является палиндромом и ответ . Иначе подсчитаем количество букв «a» стоящих в начале строки и количество букв «a» стоящих в конце строки. Если в конце строки стоит меньше букв «a», чем в начале, то добавляя буквы «a» в начало вы точно не сделаете строку палиндромом, поэтому ответ . Иначе, давайте добавим необходимое количество букв «a» в начало строки и после этого проверим, что полученная строка является палиндромом. Такое решение работает за три прохода по строке, то есть за .
Решение на Python
f = open("24.txt") s = f.readline() if len(s) == s.count("a"): print(0) else: l, r = 0, 0 i = 0 while s[i] == "a" and i < len(s): l += 1 i += 1 i = len(s) - 1 while s[i] == "a" and i >= 0: r += 1 i -= 1 if l > r: print(-1) else: s = "a" * (r - l) + s # проверка строки на палиндромность f = True for i in range(len(s) // 2): if s[i] != s[len(s) - i - 1]: f = False if f: print(r - l) else: print(-1)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из символов ’(’ и ’)’. Известно, что правильная скобочная последовательность берет начало в начале файла. Вам необходимо узнать какую максимальну длину имеет правильная скобочная последовательность. Правильная скобочная последовательность - последовательность скобок, которая подчиняется нескольким правилам:
1) Последовательность начинается с открывающейся скобки
2) Каждая открывающаяся скобка имеет в пару закрывающаяся скобку
3) Количество открывающихся скобок в любой точке скобочной последовательности больше либо равно количеству закрывающихся
Примеры правильных скобочных последовательностей: , .
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "24-4.txt". В ответе запишите длину искомой последовательности.
f = open(’24-4.txt’) s = f.read() count_left = 1 count_right = 0 for i in range(1, len(s)): if s[i] == ’(’: count_left += 1 else: if count_left > count_right: count_right += 1 else: break print(count_right + count_left)