На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение





Сообщение: 8
ссылка на сообщение  Отправлено: 15.05.21 20:52. Заголовок: Задача 24 из варианта 5 сборника С.С Крылова, Т.Е. Чуркиной


Добрый день!

Коллеги, наверное многие используют для подготовки сборник С.С Крылова, Т.Е. Чуркиной. Возник вопрос по задаче 24 из 5 варианта.
Условие задачи:
Текстовый файл состоит не более чем из 10^6 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых символ Z встречается не более двух раз. Ссылка на файл click herehttps://files.nobr.ru/#files%2FИнформатика-2021-20%2F24
В ответе даётся число 40. У меня в ответе получается 50.
Может быть кто-то решал эту задачу? Хотелось бы сверить ответ.
Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]







Сообщение: 436
ссылка на сообщение  Отправлено: 15.05.21 21:51. Заголовок: Ответ сходится, пока..


Ответ в сборнике правильный, показывайте как решали.

Discussio mater veritas est Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 9
ссылка на сообщение  Отправлено: 16.05.21 09:30. Заголовок: Программа: f = open(..


Программа:
f = open("24 варианты 1-5.txt") 
s = f.read()
m = z = 0
start = 0
for i in range(len(s)):
if s[ i] == 'Z':
z += 1
if z == 1:
fz = i
elif z == 2:
sz = i
else:
if i - start > m:
m = i - start
beg_f = start
end_f = i
start = fz + 1
fz = sz
sz = i
z = 2
print(m)
print(s[beg_f:end_f])


Ответ:
50
XXYXXYZXXXYYXYYYYXXYYYXXYYXYXXYXXXYYYYZYXXYYYYXYXY



Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 17
ссылка на сообщение  Отправлено: 16.05.21 14:12. Заголовок: В сборнике ответ 50


Посмотрела в сборнике - ответ 50 на задачу 24 вариант 5, это рядом в задаче 23 ответ 40.
У меня несколько другой вариант решения, но тоже дает ответ 50.
 f = open('24.txt') 
s = f.readline()
a=[]
maxD = 0
for i in range(len(s)-2):
if s[ i] == 'Z':
a.append(i)
i1=0
for i in range(len(a)-2):
maxD = max(maxD, a[i+2] - i1)
i1 = a[ i]+1
print(maxD)


Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 11
ссылка на сообщение  Отправлено: 16.05.21 16:16. Заголовок: Спасибо!..


Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 37
ссылка на сообщение  Отправлено: Вчера 00:30. Заголовок: Здравствуйте, а у ме..


Здравствуйте, а у меня не получается результат 50. Я нашла длину цепочки 39. Моя программа на Паскале. Я просто не совсем разбираюсь с питоном, поэтому предложенные программы не совсем поняла. Можете посмотреть, пожалуйста, в чем моя ошибка в программе. Я использую два счетчика - длина цепочки с двумя символами Z - lenZ и счетчик количества встречи символа Z в цепочке - colZ. В случае, когда встречается третий символ Z по счету, то эти переменные принимают значение 1, так как они становятся началом следующей цепочки и первым значением встречи символа Z в текущей цепочке.

ПРОГРАММА
var i, lenZ, colZ, max: longint;
s: string;
begin
assign(input, '24 варианты 1-5.txt');
readln(s);
max:=0; colZ:=0; lenZ:=0;
for i:=1 to length(s) do begin
if s<>'Z' then begin
lenZ := lenZ+1;;
if lenZ>max then max:=lenZ;
end
else begin
colZ := colZ+1;
if colZ<=2 then begin
lenZ := lenZ+1;;
if lenZ>max then max:=lenZ;
continue end
else begin
lenZ := 1;;
colZ := 1;;
end;
end;
end;
write (max);
end.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1707
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет