Форум » Обработка символьных строк » Задача 24.198.5041 » Ответить

Задача 24.198.5041

ivackov.sergey: {24.198.5041 Текстовый файл 24-197.txt содержит строку из заглавных латинских букв X, Y и Z, всего не более чем из 10^6 символов. Определите максимальное количество идущих подряд троек символов X*Y или Z*Y, где * обозначает один любой символ.} ## var s := ReadAllText('24-197.txt'); s.MatchValues('([XZ].Y){1,}').Select(t -> t.Length div 3).Max.Print; У меня ответ получается 19?

Ответов - 5

ivackov.sergey:

Поляков: Проверьте, в файле есть вот такая строка: ZYYZXYZXYZXYZYYZXYZXYZYYZYYZXYZYYZYYZXYZXYZYYZXYZXYZYYZXYZXY

ivackov.sergey: Спасибо за подсказку, понял в чем ошибка!


nikolya29: Подскажите, пожалуйста, в чем у меня ошибка, у меня тоже 19 [pre2] s = open('1.txt').readline() c, i, m = 0, 0, 0 while i <= len(s) - 2: if s[ i] in "XZ" and s[i + 2] == 'Y': i += 3 c += 1 if c > m: m = c else: i += 1 c = 0 print(m) [/pre2]

Поляков: nikolya29 пишет: Подскажите, пожалуйста, в чем у меня ошибка, у меня тоже 19 Отлаживайте на строке s = 'XZYYXXY' Ваша программа выдает ответ 1, а правильный - 2 (ZYYXXY).



полная версия страницы