предложите алгоритм следующей головоломки!

Там n койок с бензином расставлены по кругу. Каждая койка отделена от остальных определенным расстоянием. Вы выбираете какой-либо способ передвижения, при котором для преодоления 1 км расстояния требуется 1 литр бензина. Вы не можете бесконечно брать любое количество бензина из каждой койки, так как каждая койка имеет только ограниченное количество бензина. Но вы знаете, что сумма литров бензина во всех койках равна пройденному расстоянию.

т.е. пусть P1, P2, ... Pn - n коек, расположенных по кругу. d1 - расстояние между p1 и p2, d2 - расстояние между p2 и p3. dn - это расстояние между pn и p1. Теперь найдите койку, с которой можно начать путешествие, чтобы в вашем режиме движения никогда не кончалось топливо. Если я декодирую ...

Я распаковываю несколько структур, которые содержат поля типа из C. Поля содержат заполненные нулями строки UTF-8, обрабатываемые strncpy в коде C (обратите внимание на рудиментарное поведение этой функции). Если я декодирую байты, я получаю строку Unicode с большим количеством символов NUL на конце.

>>> b'hiya\0\0\0'.decode('utf8')
'hiya\x00\x00\x00'

У меня создалось впечатление, что завершающие нулевые байты являются частью UTF-8 и будут отброшены автоматически.

Как правильно отбросить нулевые байты?

18
задан Matt Joiner 22 February 2011 в 04:36
поделиться