НАЙДИТЕ ОШИБКУ В РЕШЕНИИ
Задание 3.
Условие: Найдите наибольшую длину подстроки, в которой буква «X» встречается не более 5 раз.
Код с ошибкой:
Задание 3.
Условие: Найдите наибольшую длину подстроки, в которой буква «X» встречается не более 5 раз.
Код с ошибкой:
s = open('file.txt').readline()
ans = 0
l = 0
count_X = 0
for r in range(len(s)):
if s[r] == 'X':
count_X += 1
while count_X > 3:
l += 1
if s[l] == 'X':
count_X -= 1
ans = max(ans, r - l + 1)
print(ans)❤2
НАЙДИТЕ ОШИБКУ В РЕШЕНИИ
Задание 4.
Условие: Найдите наибольшую длину подстроки, в которой буква «X» встречается не более 3 раз, и буква «Y» встречается не более 3 раз.
Код с ошибкой:
Задание 4.
Условие: Найдите наибольшую длину подстроки, в которой буква «X» встречается не более 3 раз, и буква «Y» встречается не более 3 раз.
Код с ошибкой:
s = open('file.txt').readline()
ans = 0
l = 0
count_X = 0
count_Y = 0
for r in range(len(s)):
if s[r] == 'X': count_X += 1
if s[r] == 'Y': count_Y += 1
while count_X > 3 and count_Y > 3:
if s[l] == 'X': count_X -= 1
if s[l] == 'Y': count_Y -= 1
l += 1
ans = max(ans, r - l + 1)
print(ans)👍1
НАЙДИТЕ ОШИБКУ В РЕШЕНИИ
Задание 5.
Условие: Найдите наибольшую длину подстроки, содержащей не более 5 цифр.
Код с ошибкой:
Задание 5.
Условие: Найдите наибольшую длину подстроки, содержащей не более 5 цифр.
Код с ошибкой:
s = open('file.txt').readline()
ans = 0
l = 0
count_digits = 0
digits = '0123456789'
for r in range(len(s)):
if s[r] in digits:
count_digits += 1
while count_digits >= 5:
if s[l] in digits
count_digits -= 1
l += 1
ans = max(ans, r - l + 1)
print(ans)❤1🤔1
Жду ваши исправления) Ответы выложу завтра!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4🔥2
Ребята, видел, что не все ошибки смогли найти. 😢
Поэтому сейчас обязательно изучите объяснения! Если остались вопросы — жду в комментариях!
Поэтому сейчас обязательно изучите объяснения! Если остались вопросы — жду в комментариях!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥3👍2
ОТВЕТЫ НА РУБРИКУ МИНУС ОШИБКА 🔥
1. При сдвиге левого указателя l мы забываем уменьшать счетчик count_A, если выкидываемый символ был буквой «A». Из-за этого count_A только растет, и окно никогда не сможет сдвинуться корректно.
2. В Python строки индексируются с 0. Инициализация l = 1 пропускает самый первый символ строки. Если строка начинается с подходящей последовательности, первый символ будет проигнорирован, а при сдвиге l может возникнуть путаница.
3. Указатель l сдвигается на +1 до того, как мы проверяем символ s[l]. В итоге мы проверяем и выкидываем из подстроки не тот символ, который был на позиции l, а следующий за ним. Также подстрока перестает быть валидной, если счетчик стал больше 5, а не 3.
4. Условие count_X > 3 and count_Y > 3 означает, что окно будет сдвигаться только тогда, когда оба символа превышают лимит. Если, например, X стало 4, а Y осталось 2, цикл while не запустится, и мы посчитаем невподходящую подстроку. Для проверки невалидности подстроки нужно использовать or.
5. Условие «не более 5» означает, что 5 цифр — это допустимо. Но цикл while count_digits >= 5 будет сдвигать левую границу, как только цифр станет ровно 5, отсекая подходящие подстроки. Также при проверке символа под индексом левого указателя необходимо поставить двоеточие в конце if.
1. При сдвиге левого указателя l мы забываем уменьшать счетчик count_A, если выкидываемый символ был буквой «A». Из-за этого count_A только растет, и окно никогда не сможет сдвинуться корректно.
2. В Python строки индексируются с 0. Инициализация l = 1 пропускает самый первый символ строки. Если строка начинается с подходящей последовательности, первый символ будет проигнорирован, а при сдвиге l может возникнуть путаница.
3. Указатель l сдвигается на +1 до того, как мы проверяем символ s[l]. В итоге мы проверяем и выкидываем из подстроки не тот символ, который был на позиции l, а следующий за ним. Также подстрока перестает быть валидной, если счетчик стал больше 5, а не 3.
4. Условие count_X > 3 and count_Y > 3 означает, что окно будет сдвигаться только тогда, когда оба символа превышают лимит. Если, например, X стало 4, а Y осталось 2, цикл while не запустится, и мы посчитаем невподходящую подстроку. Для проверки невалидности подстроки нужно использовать or.
5. Условие «не более 5» означает, что 5 цифр — это допустимо. Но цикл while count_digits >= 5 будет сдвигать левую границу, как только цифр станет ровно 5, отсекая подходящие подстроки. Также при проверке символа под индексом левого указателя необходимо поставить двоеточие в конце if.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1🔥1💯1
Продолжаем закреплять метод двух указателей из №24.
Ловите небольшую сводку о том, как движется каждый из указателей.📚
Ловите небольшую сводку о том, как движется каждый из указателей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥4
Продолжаем по максимуму закреплять изученные методы решения №24!
Самое время обновить обои на телефоне, а заодно и повторить теорию по двум указателям.)
Самое время обновить обои на телефоне, а заодно и повторить теорию по двум указателям.)
❤5🔥3💯3
Надеюсь к этому моменту все уже успели отоспаться вдоволь)😄
Потому что сейчас будем проверять ваши знания после веба по регуляркам. Обязательно пишите в конце, сколько верных ответов вы дали.
Запускаем викторину!
Потому что сейчас будем проверять ваши знания после веба по регуляркам. Обязательно пишите в конце, сколько верных ответов вы дали.
Запускаем викторину!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1💯1
Что означает регулярное выражение a*?
Anonymous Quiz
23%
Ровно одна буква «a»
36%
Одна или более букв «a»
36%
Ноль или более букв «a»
5%
Ровно две буквы «a»
👍1
Какая из этих строк НЕ подходит под шаблон x+y (где + означает «один или более символов»)?
Anonymous Quiz
11%
xy
7%
хху
74%
у
9%
ххху