Метод двойных указателей) s = open("24.txt").readline() l = mx = k = 0 for r in range(len(s)): if s[r] == "Y": k+=1 while k>150: if s[l] == "Y": k-=1 l -= 1 mx = max(mx, r-l+1) print(mx)
a = "" n = 0 s = input() nn = 0 for i in s: if i != a: if n > nn: nn = n n = 1 a = i else: n += 1 print(n) такое же решение по сути быстрее? или я неправильно понял задачу
Видимо не правильно понял задачу, так как мне не понятно что вообще делает твоя программа. Где здесь поиск максимальной подпоследовательности, где не боле 150 "Y"?
хорошее объяснение задачи. жаль только, что это совсем не универсальный код. прототипов много. некоторые фишки и правда полезны, спасибо в любом случае
Это ведь неэффективное решение. Здесь же помимо алгоритма, на каждой итерации у вас за n происходит создание новой строки в памяти с перекопированием по срезу
в школе решали 1 и те же задания по огэ, последний номер кумир был а не вариант с паскалем) его мы в колледже узнали, ничего не было адекватно преподнесено кроме паскаля в СПО :) надеюсь у всех остальных уч. заведений такого не было, иначе даже страшно подумать неужели у многих так все плохо с программированием в уч. заведениях @@examhack_informatics
У нас в школе например вообще небыло информатики, и сейчас готовиться к егэ по этому предмету очень сложно, из за того что нет изученной ранее базы, поэтому разжевывание для меня это очень удобно.
@@leyard3164 было бы куда лучше, если бы автор показал как получать входные данные через либу sys, не нужно распаковывать файлы и тд, а работает схожим образом, так же, на 1 задаче далеко не уедешь, за хронометраж 10минут можно объяснить 2 подобные задачи
@@examhack_informatics для егэ я бы дал следующую задачу, хотелось бы посмотреть ваше самостоятельное решение в некст видео: Даётся число n - количество шаров Каждый шар имеет свой цвет, указанный числом (т.е. 0 - это какой-то цвет, 1 - другой и т.д.) Любый цвета могут встречаться более 1 раза Шары необходимо рассортировать по коробкам таким образом, чтобы в 1 коробке были только шары 1 цвета (только 0 и т.д.) В каждую коробку можно положить не более 1 шарика другого цвета (допустим [0, 0, 1]) Пример входных данных: 5 1 1 2 2 3 Ответом будет 2, так как можно раскидать шары так: [1, 1, 3] и [2, 2] Эта задача уже может иметь смысл "разжёвывания"
Метод двойных указателей)
s = open("24.txt").readline()
l = mx = k = 0
for r in range(len(s)):
if s[r] == "Y": k+=1
while k>150:
if s[l] == "Y": k-=1
l -= 1
mx = max(mx, r-l+1)
print(mx)
Вы самостоятельно написали данный код или это код Алексея Кабанова?
@@examhack_informatics это код шастина
@@examhack_informatics Метод Лёни Шастина
Очень понятное решение и интересное задание, на моя взгляд, показалось, спасибо за разбор
Спасибо!
Спасибо за понятное объяснение. Подскажите, пожалуйста, зачем в цикле -4.
a = ""
n = 0
s = input()
nn = 0
for i in s:
if i != a:
if n > nn:
nn = n
n = 1
a = i
else:
n += 1
print(n)
такое же решение по сути быстрее?
или я неправильно понял задачу
Видимо не правильно понял задачу, так как мне не понятно что вообще делает твоя программа. Где здесь поиск максимальной подпоследовательности, где не боле 150 "Y"?
6:25 можно потом просто через тот же список вывести сумму длинн элементов + 3 (количество y)
Можно)
мне позуй
хорошее объяснение задачи. жаль только, что это совсем не универсальный код. прототипов много. некоторые фишки и правда полезны, спасибо в любом случае
Это ведь неэффективное решение. Здесь же помимо алгоритма, на каждой итерации у вас за n происходит создание новой строки в памяти с перекопированием по срезу
это не 27-б где нужно что то выдумать на log2n тут достаточно этого ничего страшного если 10 сек будет выполняться программка)
Зато строк мало
крутяк, реально понятно!!!!!!!!!!!
Подскажите пожалуйста. В пайчарме хочу открыть текстовый файл, его начинает отображать, а потом все зависает. Что делать? Пишет что-то типо анализа
Открытые файла не связана с выводом его на экран, если только не писать print. Попробуйте проверить в IDLE
Джоинт))
Дизлайк за удаление полезного комментария
А какой комментарий удалили?
@@examhack_informatics я писал, что не все задачи можно решить этим методом и ссылки на видео где описаны два других метода.
@@BezuglovS Ваш комментарий никто не удалял, но я его и не видел. Вы можете еще раз отправить ссылки где описаны другие методы.
можете скинуть ссылку на это видео?
фуфло.
разжевал задачу, которую ещё в 7 классе в школе решают, не то что на олимпиадах
ЕГЭ настолько слабое у нас по информатике что ли, или учатся плохо?
Ну не соглашусь, что во всех школах это изучают в 7 классе. В большинстве школ программирование заканчивается изучением циклов
в школе решали 1 и те же задания по огэ, последний номер кумир был а не вариант с паскалем) его мы в колледже узнали, ничего не было адекватно преподнесено кроме паскаля в СПО :) надеюсь у всех остальных уч. заведений такого не было, иначе даже страшно подумать неужели у многих так все плохо с программированием в уч. заведениях
@@examhack_informatics
У нас в школе например вообще небыло информатики, и сейчас готовиться к егэ по этому предмету очень сложно, из за того что нет изученной ранее базы, поэтому разжевывание для меня это очень удобно.
@@leyard3164 было бы куда лучше, если бы автор показал как получать входные данные через либу sys, не нужно распаковывать файлы и тд, а работает схожим образом, так же, на 1 задаче далеко не уедешь, за хронометраж 10минут можно объяснить 2 подобные задачи
@@examhack_informatics для егэ я бы дал следующую задачу, хотелось бы посмотреть ваше самостоятельное решение в некст видео:
Даётся число n - количество шаров
Каждый шар имеет свой цвет, указанный числом (т.е. 0 - это какой-то цвет, 1 - другой и т.д.)
Любый цвета могут встречаться более 1 раза
Шары необходимо рассортировать по коробкам таким образом, чтобы в 1 коробке были только шары 1 цвета (только 0 и т.д.)
В каждую коробку можно положить не более 1 шарика другого цвета (допустим [0, 0, 1])
Пример входных данных:
5
1 1 2 2 3
Ответом будет 2, так как можно раскидать шары так: [1, 1, 3] и [2, 2]
Эта задача уже может иметь смысл "разжёвывания"