Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
Текстовый файл состоит не более чем из строк, каждая из которых содержит только буквы , , . Найдите количество строк, где количество букв равно количеству букв .
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом . В ответе запишите искомое количество.
f = open(’24.txt’) a = [i for i in f] k = 0 for i in range(len(a)): if a[i].count(’X’) == a[i].count(’Y’): k += 1 print(k)
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
Текстовый файл состоит из символов S, R, O. Определите максимальную длину подстроки, состоящей из троек символов OSR или RSO. Искомая подстрока может включать только тройки OSR, только тройки RSO или содержать одновременно как тройки OSR, так и тройки RSO. Тройки не могут пересекаться.
Решение 1
s = open(’24.txt’).readline() s += ’--’ #мусор, чтобы циклы смогли сработать до конца строк maxim = 0 k = 0 for i in range(1, len(s), 3): if (s[i - 1] == ’R’ and s[i] == ’S’ and s[i + 1] == ’O’) or \ (s[i - 1] == ’O’ and s[i] == ’S’ and s[i + 1] == ’R’): k += 1 maxim = max(k, maxim) else: k = 0 k = 0 for i in range(2, len(s), 3): if (s[i - 1] == ’R’ and s[i] == ’S’ and s[i + 1] == ’O’) or \ (s[i - 1] == ’O’ and s[i] == ’S’ and s[i + 1] == ’R’): k += 1 maxim = max(k, maxim) else: k = 0 k = 0 for i in range(3, len(s), 3): if (s[i - 1] == ’R’ and s[i] == ’S’ and s[i + 1] == ’O’) or \ (s[i - 1] == ’O’ and s[i] == ’S’ and s[i + 1] == ’R’): k += 1 maxim = max(k, maxim) else: k = 0 print(maxim * 3)
Решение 2
f = open("Задание_24__tlln.txt").read() f = f.replace("OSR", "*").replace("RSO", "*") counter = 1 maxim = 0 for i in range(len(f) - 1): if f[i] == "*" and f[i + 1] == "*": counter += 1 maxim = max(counter, maxim) else: counter = 1 print(maxim * 3)
Ошибка.
Попробуйте повторить позже
Текстовый файл "Задание_49_ДЗ"содержит только заглавные буквы латинского алфавита (ABC...Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую наибольшее количество пар соседних букв, которые стоят в таком же порядке как и в алфавите (например, AB, BC, CD и т.д.; в цепочке ABC две таких пары). Если таких строк несколько, надо взять ту, которая в файле встретилась раньше.
Выведите максимальное количество пар, встреченных среди всех строк, а также букву из данной строки, которая встречается чаще всего.
Пример. Исходный файл:
ZCQABA
ZALMAC
CRACUT
В этом примере в первой и второй строках по одной подходящей паре (AB и LM), в третьей таких пар нет. Берём первую строку, т.к. она раньше встречается в файле. В этой строке чаще других встречается буква А. Если бы она была не единственной, то выбрали ту букву, что раньше стоит в алфавите. В ответе для этого примера надо записать 1A.
count = 0
maxim = 0
s = ""
for i in f:
count = 0
for j in range(len(i) - 1):
if ord(i[j]) + 1 == ord(i[j + 1]):
count += 1
if count > maxim:
maxim = count
s = i
alph = sorted(list("qwertyuiopasdfghjklzxcvbnm".upper()))
a = [0] * 26
for i in range(len(alph)):
a[i] = s.count(alph[i])
print(maxim, alph[a.index(max(a))])
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из строк, каждая из которых состоит не более чем из заглавных букв латинского алфавита. В строке, содержащей не менее 150 символов найдите максимальное расстояние (разница в индексах) между двумя одинаковыми символами, между которым не повторяется этот символ. Если строк, содержащих не менее 150 символов несколько, то используйте последнюю из таковых для поиска маскимального расстояния.
Пример:
Среди данных строк нет ни одной, где количесто символов не менее 150. Если забыть про это условие (в рамках примера), то максимальное расстояние между символами во второй строке и оно равно 7.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_48_ДЗ". В ответе запишите искомое расстояние.
Решение 1
f = open(’Задание_48_ДЗ__tctn.txt’) t = ’’ for i in f: if i.count(’Z’) >= 150: t = i alf = ’QWERTYUIOPASDFGHJKLZXCVBNM’ ans = 0 for i in range(26): m = t.split(alf[i]) for j in m[1:-1]: ans = max(len(j), ans) print(ans + 1)
Решение 2
f = open("Задание_48_ДЗ.txt") maxim = 0 alph = sorted(list("qwertyuiopasdfghjklzxcvbnm".upper())) for s in f: s = s.strip() last_symbol = [-1] * 26 if s.count("Z") >= 150: maxim = 0 for i in range(len(s)): ind_sym = alph.index(s[i]) if last_symbol[ind_sym] != -1: if i - last_symbol[ind_sym] >= 2: maxim = max(i - last_symbol[ind_sym], maxim) last_symbol[ind_sym] = i print(maxim)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из строк, каждая из которых содержит не менее семи и не более чем заглавных букв латинского алфавита. Найдите номер строки (нумерация с 0), которая содержит максимальное количество палиндромов из семи символов. Если таких строк несколько, то в ответе напишите номер первой встретившейся. Палиндром - последовательность символов, которая читается одинаково с двух сторон.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_44_ДЗ". В ответе запишите номер искомой строки.
maxim = 0
find_ind = -1
ind = 0
for s in f:
count = 0
for i in range(len(s) - 6):
if s[i:i+7] == s[i:i+7][::-1]:
count += 1
if count > maxim:
maxim = count
find_ind = ind
ind += 1
print(find_ind)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из заглавных букв латинского алфавита. Возрастающей последовательностью называется последовательность, элементы которой идут строго в порядке увеличения id по таблице ASCII. Найдите максимальную возрастающую последовательность символов.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_43_ДЗ". В ответе запишите длину искомой последовательности.
f = open(’Задание_43_ДЗ.txt’) s = f.read() count = 1 maxim = 0 for i in range(len(s) - 1): if s[i] < s[i + 1]: count += 1 maxim = max(maxim, count) else: count = 1 print(maxim)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из заглавных букв латинского алфавита. Локальным максимумом называется символ, id которого в таблице ASCII больше номеров предыдущего и последующего символа в строке. Будем считать, что первый и последний элемент строки не могут быть локальными максимумами. Найдите максимальное расстояние между двумя соседними локальными максимумами, расстояние в данной задаче это разность индексов.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_42_ДЗ". В ответе запишите искомое расстояние.
s = f.read()
ar = []
for i in range(1, len(s) - 1):
if s[i] > s[i + 1] and s[i] > s[i - 1]:
ar.append(i)
maxim = 0
for i in range(len(ar) - 1):
maxim = max(maxim, ar[i + 1] - ar[i])
print(maxim)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из заглавных букв латинского алфавита. Найдите последовательность максимальной длины, где символы идут в порядке «больше», «меньше», «больше», «меньше» и т.д. по таблице ASCII. Пример подходящей последовательности: .
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_41_ДЗ". В ответе запишите длину искомой последовательности.
Решение 1.
s = open("Задание_41_ДЗ__tcne.txt").read() counter = 1 fl = True # Ждем больше ans = 0 for i in range(len(s) - 1): if s[i] > s[i + 1] and fl: # Ждали больше, нашли больше counter += 1 fl = False # Ждем меньше elif s[i] < s[i + 1] and not fl: # Ждали меньше, нашли меньше counter += 1 fl = True # Ждем больше elif s[i] > s[i + 1] and not(fl): # Ждали меньше, нашли больше (получается больше больше) # Для ситуации CBAB, ждали меньше, получили больше, учитываем # вторую пару больше как начало новой последовательности, # флаг можно не менять, так как он уже ждет меньше counter = 2 elif s[i] < s[i + 1] and fl: # Ждали больше, нашли меньше # Флаг можно не менять, так как он уже ждет меньше counter = 1 else: counter = 1 ans = max(counter, ans) print(ans)
Решение 2. В данном решении надо отдельно рассмотреть последний символ глазами.
with open(’Задание_41_ДЗ.txt’) as f: text = f.read().strip() max_seq_len = 0 for i in range(len(text)): seq_len = 0 for j in range(i+1, len(text)): if (j-i) % 2 == 1 and ord(text[j]) > ord(text[j-1]) or \ (j-i) % 2 == 0 and ord(text[j]) < ord(text[j-1]): seq_len += 1 else: break max_seq_len = max(max_seq_len, seq_len) print(max_seq_len+1)
Решение 3.
with open(’Задание_41_ДЗ.txt’) as f: text = f.read().strip() + "-" seq_len = 1 max_seq_len = 0 for i in range(1, len(text) - 1, 2): if text[i - 1] > text[i] < text[i + 1] and text[i + 1] != "-": seq_len += 2 max_seq_len = max(max_seq_len, seq_len) else: if text[i - 1] > text[i]: seq_len += 1 max_seq_len = max(max_seq_len, seq_len) seq_len = 1 for i in range(2, len(text) - 1, 2): if text[i - 1] > text[i] < text[i + 1] and text[i + 1] != "-": seq_len += 2 max_seq_len = max(max_seq_len, seq_len) else: if text[i - 1] > text[i]: seq_len += 1 max_seq_len = max(max_seq_len, seq_len) seq_len = 1 print(max_seq_len)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из заглавных букв латинского алфавита. Найдите последовательность максимальной длины, которая содержит буквы строго в алфавитном порядке, т.е. .
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_40_ДЗ". В ответе запишите длину искомой последовательности.
s = f.read()
count = 1
maxim = 0
for i in range(len(s) - 1):
if ord(s[i]) == ord(s[i + 1]) - 1:
count += 1
maxim = max(maxim, count)
else:
count = 1
print(maxim)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из заглавных букв латинского алфавита. Найдите длину максимальной неубывающей подпоследовательности символов по таблице ASCII.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_39_ДЗ". В ответе запишите длину искомой подпоследовательности.
maxim = 0
count = 1
for i in range(len(f) - 1):
if (f[i] <= f[i + 1]):
count += 1
maxim = max(count, maxim)
else:
count = 1
print(maxim)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из цифр от 0 до 9. Найдите самую длинную последовательность, цифр одной четности.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_38_ДЗ". В ответе запишите длину искомой последовательности.
f = open("Задание_38_ДЗ.txt") s = f.read() maxim, counter = 0, 1 for i in range(len(s) - 1): if int(s[i]) % 2 == int(s[i + 1]) % 2: counter += 1 maxim = max(maxim, counter) else: counter = 1 print(maxim)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из символов, которые являются цифрами от 1 до 9. Вам необходимо найти количество и сумму двузначных палиндромов в данном файле. Пример для строки "11122"количество равно 3, сумма равна 44.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_37_ДЗ". В ответе запишите количество и сумму палиндромов.
count = 0
sum_pal = 0
for i in range(len(f) - 1):
if (f[i] == f[i + 1]):
count += 1
sum_pal += int(f[i] + f[i + 1])
print(count, sum_pal)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из символов, которые являются цифрами от 1 до 9. Вам необходимо найти знакопеременную сумму цифр данного выражения. Считать, что первый знак — "+". Пример для строки "1234" значение суммы равно
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_36_ДЗ". В ответе запишите значение знакопеременной суммы.
s = int(f[0])
for i in range(1, len(f)): # отказ от if
s += int(f[i]) * (i % 2 != 0) - int(f[i]) * (i % 2 == 0)
print(s)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из символов, которые являются цифрами от 1 до 9, знаками плюс, минус. Найдите подпоследовательность, состоящую из максимального количества положительных чисел. (Положительное число - число, перед которым либо нет знака, либо знак "+")
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_35_ДЗ". В ответе запишите сумму данной подпоследовательности, если подпоследовательностей с максимальным количеством положительных элементов несколько, то в ответе запишите максимальную сумму.
max_plus = 1
count_plus = 1
max_sum = int(f[0])
sum = int(f[0])
for i in range(1, len(f) - 1, 2):
if (f[i] == ’+’):
sum += int(f[i + 1])
count_plus += 1
if (count_plus > max_plus):
max_plus = count_plus
max_sum = sum
elif (count_plus == max_plus):
if (sum > max_sum):
max_sum = sum
else:
sum = 0
count_plus = 0
print(max_sum)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из символов, которые являются цифрами от 1 до 9, знаками плюс, минус и одного знака равно. Вычислите значение выражений до и после знака равно.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_34_ДЗ". В ответе запишите большее из значений, если они равны, то запишите 1.
f = open(’Задание_34_ДЗ.txt’).read() s = int(f[0]) # первый символ s1 = 0 key = True for i in range(1, len(f) - 1, 2): # ходим только по знакам if key: # до знака равно if (f[i] == ’+’): s += int(f[i + 1]) elif (f[i] == ’=’): key = False s1 += int(f[i + 1]) # первый символ после знака равно else: s -= int(f[i + 1]) else: if (f[i] == ’+’): s1 += int(f[i + 1]) else: s1 -= int(f[i + 1]) print(max(s, s1) * (s != s1))
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из символов, которые являются цифрами от 1 до 9, знаками плюс, минус и одного знака равно, стоящего в конце. Вычислите значение данного выражения.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_33_ДЗ". В ответе запишите значение данного выражения.
s = int(f[0]) # первый символ
for i in range(1, len(f) - 1, 2): # ходим только по знакам
if (f[i] == ’+’):
s += int(f[i + 1])
else:
s -= int(f[i + 1])
print(s)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из строк, каждая из которых содержит не более чем букв латинского алфавита. Найдите строку, которая содержит максимальное количество символов , если таких строк несколько, то используйте первую найденную. В найденной строке найдите самый редко используемый символ (больше 0 раз).
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_32_ДЗ". В ответе запишите найденный символ и количество его повторений в найденой строке через пробел, если таких символов несколько, то запишите тот, что раньше по алфавиту.
f = open(’Задание_32_ДЗ.txt’) alph = sorted(list(’QWERTYUIOPASDFGHJKLZXCVBNM’)) alph_count = [0] * 26 find_string = "" maxim_count_A = 0 minim = 100000000 minim_symb = "" for i in f: if i.count(’A’) > maxim_count_A: maxim_count_A = i.count(’A’) find_string = i for i in range(26): alph_count[i] = find_string.count(alph[i]) if alph_count[i] < minim and alph_count[i] > 0: minim = alph_count[i] minim_symb = alph[i] print(minim_symb, minim)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из заглавных букв латинского алфавита. Найдите самый часто повторяющийся символ между символами и (в данном порядке: *символ* ). Если таких символов несколько, следует взять тот, что раньше по алфавиту.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_31_ДЗ". В ответе запишите искомый символ.
s = f.readline()
alph = list(’QWERTYUIOPASDFGHJKLZXCVBNM’)
alph.sort()
ar = [0] * 27
for i in range(1, len(s) - 1):
if s[i - 1] == ’A’ and s[i + 1] == ’R’:
ind = alph.index(s[i])
ar[ind] += 1
print(alph[ar.index(max(ar))])
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из заглавных букв латинского алфавита. Найдите длину максимальной подпоследовательности, где идет чередование гласных и согласных букв. Считать, что - гласная.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_30_ДЗ". В ответе запишите длину искомой последовательности.
Пример подходящей последовательности:
gl = ’EIOAUY’
count = 1
maxim = 0
for i in range(len(f) - 1):
if ((f[i] in gl) != (f[i + 1] in gl)):
count += 1
maxim = max(maxim, count)
else:
count = 1
print(maxim)
Ошибка.
Попробуйте повторить позже
Текстовый файл состоит не более чем из заглавных букв латинского алфавита. Найдите символ, который повторяется больше всего, если таких символов несколько выведите тот, который раньше стоит по алфавиту.
Для выполнения этого задания следует написать программу. Воспользуйтесь файлом "Задание_27_ДЗ". В ответе запишите символ, который повторяется больше всего. Английский алфавит: .
al = sorted(list(’QWERTYUIOPASDFGHJKLZXCVBNM’)) # по порядочку
al_count = [0] * 26
for i in range(len(f)):
al_count[al.index(f[i])] += 1
maxim = max(al_count) # максимальное количество повторений какой-то буквы
ind = al_count.index(maxim) # индекс первого вхождения
print(al[ind]) # или так print(al[al_count.index(max(al_count))])