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

Задача №3358 – не сходится ответ

elilcat: Здравствуйте! Вот моё решение: [pre2] def main(filename: str): with open(filename, encoding='utf-8') as f: sequences = [''] for s in f.read(): if not sequences[-1]: sequences[-1] = s elif ord(s) < ord(sequences[-1][-1]): sequences[-1] += s else: # sequences[-1] += s sequences.append('') if not sequences[-1]: sequences.pop(-1) return len(max(sequences, key=len)) if __name__ == '__main__': print(main('24-3.txt')) [/pre2] В чём суть: ответ, получаемый из моего решения, меньше на единицу от ответа, данного в БД. Заметил, что, если к каждой убывающей последовательности прибавлять символ, который остановил эту последовательность (ибо уже был больше последнего элемента по ASCII-коду), ответ сходится. Но ведь как раз таки этот символ, который, видимо, предполагается прибавлять, опять же исходя из ответа, уже не должен входить в эту последовательность! Прошу рассмотреть данный случай! Спасибо!

Ответов - 2

vladimirKazan: Здравствуйте! Вы не учитываете, что неподошедший символ может быть началом искомой последовательности. Замените строку sequences.append('') на sequences.append(s) и получите правильный ответ.

elilcat: vladimirKazan Прошло, спасибо! Невнимательность – наше всё, как говорится



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