Задание 24 (метод двух указателей) // КЕГЭ по информатике 2024

Поделиться
HTML-код
  • Опубликовано: 2 янв 2025

Комментарии • 42

  • @p51v
    @p51v 9 месяцев назад +33

    Было бы прекрастно, чтобы было 3 разных дз, возвожно с повторяющимися задачами, для отработки всех способов

  • @kirillymshanov4689
    @kirillymshanov4689 10 месяцев назад +11

    шикарный веб, спасибо, будет круто еще если таймкоды появятся)

  • @kev1n232
    @kev1n232 8 месяцев назад

    Благодарю за веб!😉

  • @ИмяФамилия-г8ш5ь
    @ИмяФамилия-г8ш5ь 9 месяцев назад +2

    44:22 - последовательные буквы, почему между ними могут быть еще буквы "О" ??

    • @килбос99
      @килбос99 8 месяцев назад

      перечитайте ещё раз условие, я сначала тоже подумал так

  • @alexeyzhuravlev9280
    @alexeyzhuravlev9280 10 месяцев назад +11

    Алексей, почему вы с КЕГЭ удалили вэб по перебору на C++ в 27?

    • @kompege
      @kompege  10 месяцев назад +32

      Потому что это потеряло актуальность

  • @GameChanger___
    @GameChanger___ 8 месяцев назад

    53:36 Мне это кажется, или в вашем решении не учитываются варианты, когда самая длинная цепочка может начинаться не в той точке, где закончилась предыдущая цепочка, а находиться внутри этой последовательности? Ведь, если допускается присутствие других О внутри цепочки, тогда обязательно учесть и цепочки, начинающиеся с этих О и так же включающие не более двух F. Поэтому такое решение уместно для условия, что в искомой последовательности должно присутствовать не более одной F, но не подходит для двух и более. Мне точно не померещилась ошибка в этом решении, или я что-то не понимаю?

    • @kompege
      @kompege  8 месяцев назад

      Ошибки нет, просто вы как то непонятно интерпретировали условие

    • @GameChanger___
      @GameChanger___ 8 месяцев назад

      ​@@kompegeизвините, я не учел, что между последовательными О

    • @damira9234
      @damira9234 8 месяцев назад

      ​@@kompege На тесте:
      s = 'AAOBFCCFDDOEEEFAAOBBFCCODD'
      программа даст ответ 22 (т.е. цепочка: 'OBFCCFDDOEEEFAAOBBFCCO'), что неправильно!
      Правильный ответ 9 для подцепочки 'OBFCCFDDO', где символы 'O' идут последовательно.

    • @kompege
      @kompege  8 месяцев назад

      @@damira9234 вы неправильно поняли условие задачи. Не более двух F между последовательными F, а не между крайними

  • @STARK-g1o
    @STARK-g1o 10 месяцев назад +11

    Будет ли по параллельным процессам(22) через деревья?

    • @kompege
      @kompege  10 месяцев назад +25

      Дыа

  • @veto4ka_
    @veto4ka_ 9 месяцев назад

    СПАСИБО!

  • @frog673
    @frog673 7 месяцев назад

    30:07 здесь же необязательно писать if kz == 120
    там же в цикле в любом случае будет только 120 kz, разве нет??

    • @kompege
      @kompege  7 месяцев назад

      Ну я как раз про это и говорю )

    • @KyDARcho
      @KyDARcho 7 месяцев назад

      а почему только 120? не пойму

    • @kompege
      @kompege  7 месяцев назад

      @@KyDARcho Потому что это минимальное подходящее количество символов Z в подстроке.

  • @oabugaeva
    @oabugaeva 9 месяцев назад +1

    Алексей, спасибо за подробный разбор, спасибо за помощь, тем, кто готовится к ЕГЭ. Решила использовать новый метод для решения № 4752. К сожалению, у меня не сошелся ответ. Не могу понять в чем ошибка. Помогите, пожалуйста. Вот мой код:
    s= open('24-181.txt').readline()
    l=m=k=0
    for r in range(len(s)):
    if s[r]=='.':
    l=r+1
    k=0
    if s[r] in 'AEIOUY':
    k+=1
    if k

    • @kompege
      @kompege  9 месяцев назад

      А где сдвиг левой границы?

    • @oabugaeva
      @oabugaeva 9 месяцев назад

      @@kompege Але,ксей, я думала, что команда l=r+1, сдвигает левую границу.

    • @kompege
      @kompege  9 месяцев назад

      Если k>7 границу тоже нужно сдвигать

    • @oabugaeva
      @oabugaeva 9 месяцев назад

      @@kompege Спасибо, поняла.

  • @ВалНикитенко
    @ВалНикитенко 7 месяцев назад

    Программа номер 3 не будет работать, если строка состоит из 120 букв Z. В этом случае внутри цикла while kz сразу станет равным 119 и m вычисляться не будет.

    • @kompege
      @kompege  7 месяцев назад

      Согласен, проверку минимума лучше записать в начало цикла while

  • @crushitelyoutuba
    @crushitelyoutuba 10 месяцев назад +3

    Алексей, здравствуйте, а когда домашка обновится по 24 вебу?

  • @опухшийзаяц
    @опухшийзаяц 7 месяцев назад +1

    здравствуйте. посмотрела 3 веба. прорешала дз. но такую задачку не получается решить
    Текстовый файл 24-280.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита. Определите длину самой длинной подпоследовательности символов, в которой нет повторяющихся букв.
    можете, пожалуйста, подсказать решение или хотя бы метод. буду очень благодарна

    • @kompege
      @kompege  7 месяцев назад +1

      Можно легко решить динамикой, это второй веб на курсе

  • @GameChanger___
    @GameChanger___ 8 месяцев назад

    1:10:14 Допустим в файле встречается последовательность '2022022'. Это будет считаться за две комбинации '2022'? Если нет, тогда нужно другое решение

    • @kompege
      @kompege  8 месяцев назад

      В этой подстроке комбинация 2022 встречается два раза

  • @JohnBorodach
    @JohnBorodach 10 месяцев назад +1

    Не правильнее ли вызывать m = min(m, r - l + 1) сразу после while?
    В этой точке у нас точно выполняется условие all(d.values())
    Если сделать это в конце, то например референсная строка '0123456789ABCDEF' распознана не будет.
    # s = open('24-249.txt').readline()
    s = '0123456789ABCDEF'
    d = {x: 0 for x in '0123456789ABCDEF'}
    l = 0
    m = 10 ** 10
    for r in range(len(s)):
    if s[r] in d: d[s[r]] += 1
    while all(d.values()):
    m = min(m, r - l + 1)
    if s[l] in d: d[s[l]] -= 1
    l += 1
    print(m)

    • @kompege
      @kompege  10 месяцев назад +1

      Я с вами полностью согласен )

  • @Urij_Player
    @Urij_Player 10 месяцев назад +1

    а Этот стрим не разбит на таймкоды

  • @arseniykefirovich9209
    @arseniykefirovich9209 3 месяца назад

    42:09

  • @ИринаАристова-г4ь
    @ИринаАристова-г4ь 10 месяцев назад

    Алексей, а домашка уже новая?)

  • @m4krozz216
    @m4krozz216 7 месяцев назад

    напоминает один метод сортировки

  • @natmembers
    @natmembers 8 месяцев назад

    10:30

  • @beautiful_ground
    @beautiful_ground 10 месяцев назад

    а разве эта техника не называется сдвигающееся окно?

  • @polx990
    @polx990 10 месяцев назад

    Алексееей

  • @успех_мотивация
    @успех_мотивация 9 месяцев назад +9

    Объяснение 3 задачи максимально плохое, можно скипать

  • @elobaka6138
    @elobaka6138 10 месяцев назад +1

    Что скажете по поводу такого решения двух последних задач?
    s = open('24-262.txt').readline()
    l = m = 0
    k1 = 0
    k2 = ''
    for r in range(3, len(s)):
    k1 += s[r-3:r+1] == 'SOLO'
    k2 += s[r] if s[r] in '0123456789' else ''
    while k1 > 4:
    k1 -= s[l:l+4] == 'SOLO'
    if s[l] in '0123456789':
    k2 = k2.replace(s[l], '', 1)
    l += 1
    if len(set(k2)) >= 5:
    m = max(m, r - l + 1)
    print(m)
    s = open('24-249.txt').readline()
    l = 0
    m = 10**20
    k = ''
    for r in range(len(s)):
    k += s[r] if s[r] in '0123456789ABCDEF' else ''
    while len(set(k)) >= 16:
    m = min(m, r - l + 1)
    if s[l] in '0123456789ABCDEF':
    k = k.replace(s[l], '', 1)
    l += 1
    print(m)