Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

В чем заключается ошибка программы?

Оксана Гуцевич Ученик (70), закрыт 3 года назад
Текстовый файл состоит из символов X,Y,Z.Определите максимальную длину цепочки символов , состоящей из из повторяющихся фрагментов XYZ. Цепочка может начинаться и заканчиваться любым из символов XYZ,но внутри цепочки порядок строго определен.Для строки ZZZXYZXYZXZZZ длина цепочки равна 8: Z+XYZ+XYZ+X,где цепочка начинается с Z, а заканчивается X.


ссылка на файл

https://yadi.sk/d/8gCIF4Je1i5jRQ

ссылка на код

https://onlinegdb.com/FOPLuUNnY


получается 68 ответ

а правильный 69

почему так?в чем ошибка?
Лучший ответ
Vitness Просветленный (35240) 3 года назад
У тебя в выводе + 2. Это видимо исходя из примера где Z+XYZ+XYZ+X.
Но ведь никто не обещает что так будет.
Там также может быть
XYZ+XYZ (+0)
Z+XYZ+XYZ (+1)
Z+XYZ+XYZ+XY (+3)
YZ+XYZ+XYZ+XY (+4)
Остальные ответы
Aleks Nots Просветленный (26591) 3 года назад
D = {'X':'Y', 'Y':'Z', 'Z':'X'}
with open('24.txt') as f:
~~~~s = f.read()
#s='ZZZXYZXYZXZZZ'
mx = 0
cur = 1 # учитывая, что в файле только X, Y, Z
for i in range(1, len(s)):
~~~~if D[s[i-1]] == s[i]:
~~~~~~~~cur += 1
~~~~else:
~~~~~~~~if mx < cur:
~~~~~~~~~~~~mx = cur
~~~~~~~~cur = 1
~~~~~~~~
print(mx)
Похожие вопросы