Вот метод O (1):
def strlen(s):
if s == "": return 0
return s.rindex(s[-1]) + 1
Другими словами, он не работает, считая символы, поэтому должен быть таким же быстрым для строки 1 ГБ, как и для 1строка байта.
Работает, глядя на последний символ и ища с самого конца, чтобы найти этот символ.Так как это последний символ, он всегда найдет его на первом месте, по сути, всегда возвращая индекс последнего символа.Длина всего на единицу больше, чем индекс последнего символа.