Задание 24 (регулярки) // КЕГЭ по информатике 2025

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

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

  • @ajlellia4660
    @ajlellia4660 День назад +1

    Респект бесконечный, кроме Вас такое никто не объяснит толково на большую аудиторию)

  • @_happ1ness_
    @_happ1ness_ 8 дней назад +1

    я ждал этого разбора! спасибо!

  • @Andrew-y7i1p
    @Andrew-y7i1p 7 дней назад

    Спасибо за видео. Заметил, что, вроде, в задаче № 5155 в строке: m.append(c.end() - c.start() + 1) добавлять эту единицу не нужно. C добавлением единицы, если использовать дальше обычное деление, а не целочисленное, получается 1310.5 вместо 1310.0. Но целочисленное деление привело к правильному ответу

  • @life_is_michael
    @life_is_michael 8 дней назад

    Алексей, добрый день! Спасибо за разбор!
    Так всё просто с этим гробом.
    С помощью регулярок нашли все строки, которые являются арифметическими выражениями, после чего каждое из них закидываем в функцию eval() и получаем значение выражение.

    • @Вова-ч2м7и
      @Вова-ч2м7и 2 дня назад

      не все варианты проверяются, 53+0*0*0*0*0*0 будет неверно, а без 53+ верно

    • @life_is_michael
      @life_is_michael День назад

      @Вова-ч2м7и почему Вы так решили? Код выдаёт правильный ответ - 53
      s = "53+0*0*0*0*0*0"
      print(eval(s))

  • @Limon4ik.1
    @Limon4ik.1 8 дней назад +2

    А разве не легче будет проверять значение арифметического выражения через eval()? Решение этим способом:
    from re import *
    s = open('24-299.txt').readline()
    num = r'(?:[1-9][0-9]*|0)'
    pattern = rf'{num}(?:[+*]{num})*'
    m = [len(c) for c in findall(pattern, s) if eval(c) == 0]
    print(max(m))

    • @infkege
      @infkege 8 дней назад +1

      Нет. Тест: 12*0+1. У тебя будет ответ 0, а должен быть 4.
      Дело в том, что мы можем элемент из findall срезать слева и справа, и значение уже получится равным нулю (хотя исходное не равнялось).

    • @Limon4ik.1
      @Limon4ik.1 8 дней назад

      ​@@infkege всё понял, немного ошибся, через eval() надо было иначе решать, но там код длинный

    • @kdlls
      @kdlls 7 дней назад +1

      @@infkege почему 4, если ответ 1?))

    • @GeorgyVandyshev
      @GeorgyVandyshev 4 дня назад

      @@infkege респект! тоже решил через regexp и долго не мог понять, почему ответ в итоге неправильный

  • @artemnesterov6288
    @artemnesterov6288 8 дней назад +1

    А почему во всех заданиях, которые в первой половине видео, нет пересекающихся комбинаций?

  • @sergey_bereg
    @sergey_bereg 8 дней назад

    Здравствуйте, скажите а это веба достаточно для 24 задачи или будут другие вебы?

    • @kompege
      @kompege  2 дня назад

      На открытом курсе есть еще 3 веба по этой задаче