Автор | Сообщение |
|
Отправлено: 04.02.22 13:52. Заголовок: Задача №3358 – не сходится ответ
Здравствуйте! Вот моё решение: 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')) В чём суть: ответ, получаемый из моего решения, меньше на единицу от ответа, данного в БД. Заметил, что, если к каждой убывающей последовательности прибавлять символ, который остановил эту последовательность (ибо уже был больше последнего элемента по ASCII-коду), ответ сходится. Но ведь как раз таки этот символ, который, видимо, предполагается прибавлять, опять же исходя из ответа, уже не должен входить в эту последовательность! Прошу рассмотреть данный случай! Спасибо!
|
|
|
Ответов - 2
[только новые]
|
|
|
Отправлено: 04.02.22 16:34. Заголовок: Здравствуйте! Вы не ..
Здравствуйте! Вы не учитываете, что неподошедший символ может быть началом искомой последовательности. Замените строку sequences.append('') на sequences.append(s) и получите правильный ответ.
|
|
|
|
Отправлено: 04.02.22 19:29. Заголовок: vladimirKazan Прошло..
vladimirKazan Прошло, спасибо! Невнимательность – наше всё, как говорится
|
|
|
|