Автор | Сообщение |
|
Отправлено: 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. Может быть кто-то решал эту задачу? Хотелось бы сверить ответ. Спасибо!
|
|
|
Ответов - 6
[только новые]
|
|
|
Отправлено: 15.05.21 21:51. Заголовок: Ответ сходится, пока..
Ответ в сборнике правильный, показывайте как решали.
|
|
|
|
Отправлено: 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
|
|
|
|
Отправлено: 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)
|
|
|
|
Отправлено: 16.05.21 16:16. Заголовок: Спасибо!..
Спасибо!
|
|
|
|
Отправлено: 11.06.21 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[ i]<>'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.
|
|
|
|
Отправлено: 21.06.21 21:29. Заголовок: Жалок тот, кто живет без идеала.
f = open('24 варианты 1-5.txt') s = f.readline() s= s.split('Z') k = m = 0 for i in range(len(s)-2): k = len(s[ i]) + len(s[i+1]) + len(s[i+2]) + 2 m = max(m, k) print(m)
|
|
|
|