№4524 Можно проще сделать, просто разделить через точку с помощью split, потом с помощью for, считать сумму длин текущей строки и следующей + 1 (точка между ними)
19:14 Задачу 4524 можно было решить так: with open('24-181.txt') as f: s = f.readline().split('.') temp = 0 m = 0 for i in range(len(s)-1): temp = len(s[i]) + len(s[i+1]) m = max(m, temp+1) print(m) Out: 353
На самом деле в коде к задаче 4524 ошибка. Дело в том, что мы берём только индексы точек, а стоило бы ещё взять индексы начала и конца строки, чтобы учитывать промежуток до первой точки и после последней. В этой задаче это никак не влияет на результат, но может оказаться важным в других)
А почему никто не использует метод tuple() а затем Count(). Count же тоже находит количество допустим "@" в кортеже(tuple). Как по мне вполне рабочий способ, с меньшей сложность для новичков. например надо найти длину максимально длинной цепочки x. f = open("24_demo.txt", 'r") s = f.read() a = tuple(s) print(a.count(X)") каждый раз надо запускать код и увеличивать количество X пока Count не станет 0, затем опять убираем один и получится 1. тогда можно просто самими посчитать количесво иксов или использовать метод len() P.S.если я не прав и так нельзя делать то поправьте
А разве в 3й задаче 12:27 у нас правильный ответ? В условии ещё сказано, что в строке А и В не встречается нигде кроме начала и конца, но мы не сделали проверку s.count('A') == 1, и если у нас А находится где-то в середине строки, то она нам не подходит по условию задачи. Или я не прав?
хей, ребят, у кого лучше курсы покупать подготовки к егэ? (сдаю профиль, русский, инфу) чтобы было без воды и всё понятно, я не технарь такой уж, золотая середина🙃
Вот так можно было.... # 6526 f = open('file 24/24-259.txt').readline() st = ''.join([' '+i[i.index('ATG'):] for i in f.replace('TAA','TAA ').split() if 'ATG' in i]) print(max(len(i) for i in st.split() if 'TGA' not in i[2:] and 'TAG' not in i)) # 124
в 3 задаче у вас неправильный код, если бы была строка например xxAxxxxxxxAxxxBx, то по вашему коду получилась бы строка xx@Axxxxxxx@AxxxB@x, и если бы просплитили по @ , то самой длинной бы строкой получилась строка Axxxxxxx, что является неверным ответом.
@@shlakvkruzhkah скорее всего он имел в виду файл с расширением py, в котором ты пишешь код, просто создай файл py, в котором пишешь код, на рабочем столе
Короткая версия программ, которая решает такие задания. # 2522 часть 1 k8-10 ''' f = open('file 24/k8-10.txt').readline() st = ''.join(map(lambda x, y: x if x!=y else x+' ', f, f[1:])) print(max(len(i) for i in st.split())) ''' # 4919 часть 1 24-191 ''' f = open('file 24/24-191.txt').readline() st = ''.join(map(lambda x: ' '+x if x=='A' else x+' ' if x=='B' else x, f)) print(sum(1 for i in st.split() if all(('A' in i, 'B' in i, i.count('F')==2, len(i)>=20)))) ''' # 6052 часть 24-241 ''' f = open('file 24/24-241.txt').readline() st = [''.join(map(lambda x, y, z: '3' if all((x in 'AEO', y in 'AEO', z in 'BCDF')) else ' ', f[i::3], f[i+1::3], f[i+2::3])) for i in (0,1,2)] print(max(len(c) for i in st for c in i.split())) ''' # 2538 часть 24-241 ''' f = open('file 24/24-5.txt').readline() st = [''.join(map(lambda x, y: '1' if x+y=='()' else ' ', f[i::2], f[i+1::2])) for i in (0,1)] print(max(len(c) for i in st for c in i.split())) ''' # 4524 часть 1 24-181 ''' f = open('file 24/24-181.txt').readline().split('.') print(max(len('.'.join(f[i:i+2])) for i in range(len(f)))) '' # 3155 24-s2 ''' f = open('file 24/24-s2.txt').readline().split('A')[1:] st = ''.join(i[0] for i in f if i); sl = {v: st.count(v) for v in set(st)} print(sorted([k for k, i in sl.items() if i==max(*sl.values())])[-1]+f'{max(*sl.values())}') '''
24 номер для меня очень противненькая задача. Спасибо за то, что будете её разбирать!!! 1 том "Берсерка" - это начало лучшей манги!!!
№4524 Можно проще сделать, просто разделить через точку с помощью split, потом с помощью for, считать сумму длин текущей строки и следующей + 1 (точка между ними)
19:14 Задачу 4524 можно было решить так:
with open('24-181.txt') as f:
s = f.readline().split('.')
temp = 0
m = 0
for i in range(len(s)-1):
temp = len(s[i]) + len(s[i+1])
m = max(m, temp+1)
print(m)
Out: 353
На самом деле в коде к задаче 4524 ошибка. Дело в том, что мы берём только индексы точек, а стоило бы ещё взять индексы начала и конца строки, чтобы учитывать промежуток до первой точки и после последней. В этой задаче это никак не влияет на результат, но может оказаться важным в других)
Да, оно конкретно для данной задачи было.
Спасибо за ролик. А за берсерка отдельное уважение)
снова огромнейшее спасибо. опять очень помогли. то чувство, когда почти полностью готовишься к егэ по вашим видео :з
А почему никто не использует метод tuple() а затем Count(). Count же тоже находит количество допустим "@" в кортеже(tuple). Как по мне вполне рабочий способ, с меньшей сложность для новичков.
например надо найти длину максимально длинной цепочки x.
f = open("24_demo.txt", 'r")
s = f.read()
a = tuple(s)
print(a.count(X)")
каждый раз надо запускать код и увеличивать количество X пока Count не станет 0, затем опять убираем один и получится 1.
тогда можно просто самими посчитать количесво иксов или использовать метод len()
P.S.если я не прав и так нельзя делать то поправьте
А разве в 3й задаче 12:27 у нас правильный ответ? В условии ещё сказано, что в строке А и В не встречается нигде кроме начала и конца, но мы не сделали проверку s.count('A') == 1, и если у нас А находится где-то в середине строки, то она нам не подходит по условию задачи. Или я не прав?
Если не поздно, отвечу. Дело в том, что мы заменили все А на @A и разделили строку. Нет таких подстрок, где существовала бы А не в начале
Спасибо вам!!!
А в задаче с точками не проще будет разделить строку на список по точкам и найти максимальную длинну пары элементов?
я всего 12 заданий сделал
хей, ребят, у кого лучше курсы покупать подготовки к егэ? (сдаю профиль, русский, инфу) чтобы было без воды и всё понятно, я не технарь такой уж, золотая середина🙃
Информатику однозначно у Иван Викторовича
@@plugar_inf это возможно🙃 очень хорошее объяснение
матеша и русский - школково, так же, для матеши - Пифагор, инфу - Иван Викторович
математику и русский лучше всего в школково.
@@elDeg312 ну как написали егэ? на какие резы?
Здравствуйте, а как решить 6526 с сайта полявока? Ведь сплит там не будет рабоать корректно
Вот так можно было....
# 6526
f = open('file 24/24-259.txt').readline()
st = ''.join([' '+i[i.index('ATG'):] for i in f.replace('TAA','TAA ').split() if 'ATG' in i])
print(max(len(i) for i in st.split() if 'TGA' not in i[2:] and 'TAG' not in i)) # 124
в 3 задаче у вас неправильный код, если бы была строка например xxAxxxxxxxAxxxBx, то по вашему коду получилась бы строка xx@Axxxxxxx@AxxxB@x, и если бы просплитили по @ , то самой длинной бы строкой получилась строка Axxxxxxx, что является неверным ответом.
где можно взять сами файлы ?
А где ссылка на файлы задания?
как установить текстовый файл в ту же директорию, что и пайтон, я не понимаю.
и файл и прогу на рабочем столе сохрани и всё
@@clownada_4998 прогу заново скачивать?
@@shlakvkruzhkah скорее всего он имел в виду файл с расширением py, в котором ты пишешь код, просто создай файл py, в котором пишешь код, на рабочем столе
@@dasplet_ спасибо
Блин я скорее всего ОГЭ написал на 3 по информатике. Можно будет потом переписать?
да, только нужно с 1 класса до 9 все пройти
Только если подать апелляцию
Почему приводите неэффективные рещения
Я же в видео говорил, что мы не олимпиаду решаем. И моя задача написать простой и понятный код, который под силу любому школьнику
Короткая версия программ, которая решает такие задания.
# 2522 часть 1 k8-10
'''
f = open('file 24/k8-10.txt').readline()
st = ''.join(map(lambda x, y: x if x!=y else x+' ', f, f[1:]))
print(max(len(i) for i in st.split()))
'''
# 4919 часть 1 24-191
'''
f = open('file 24/24-191.txt').readline()
st = ''.join(map(lambda x: ' '+x if x=='A' else x+' ' if x=='B' else x, f))
print(sum(1 for i in st.split() if all(('A' in i, 'B' in i, i.count('F')==2, len(i)>=20))))
'''
# 6052 часть 24-241
'''
f = open('file 24/24-241.txt').readline()
st = [''.join(map(lambda x, y, z: '3' if all((x in 'AEO', y in 'AEO', z in 'BCDF')) else ' ', f[i::3], f[i+1::3], f[i+2::3])) for i in (0,1,2)]
print(max(len(c) for i in st for c in i.split()))
'''
# 2538 часть 24-241
'''
f = open('file 24/24-5.txt').readline()
st = [''.join(map(lambda x, y: '1' if x+y=='()' else ' ', f[i::2], f[i+1::2])) for i in (0,1)]
print(max(len(c) for i in st for c in i.split()))
'''
# 4524 часть 1 24-181
'''
f = open('file 24/24-181.txt').readline().split('.')
print(max(len('.'.join(f[i:i+2])) for i in range(len(f))))
''
# 3155 24-s2
'''
f = open('file 24/24-s2.txt').readline().split('A')[1:]
st = ''.join(i[0] for i in f if i); sl = {v: st.count(v) for v in set(st)}
print(sorted([k for k, i in sl.items() if i==max(*sl.values())])[-1]+f'{max(*sl.values())}')
'''
Лучше уж нормально расписать чем в этих скобочках путаться