¿Cuál es la complejidad de tiempo de la rebanada de cuerdas? O (k) o O (n)

poder-leopardo:

Es la complejidad de tiempo de pitón str rebanada O (k) u O (n)?

Las respuestas que estoy leyendo su sugieren O (k) pero no entienden cómo.

Por ejemplo

my_str = "thisismystringfortesting"

sub_str = my_str[3:10]

Entiendo su extracción sólo caracteres (k), pero ¿la operación no tiene que convertir toda la cadena en una lista antes de la división? Mi proceso de pensamiento es que la conversión de toda la cadena en una lista por sí solo los O (n). A menos que sólo una parte de la cadena se convierte en una lista?

Así que por favor alguien puede explicar es cortar la cadena en Python O (k) u O (n)?

¡Muchas gracias!

Jacques Gaudin:

El código relevante es aquí y es O (k) como se puede ver la línea 1628

result_buf = PyBytes_AS_STRING(result);
for (cur = start, i = 0; i < slicelength;cur += step, i++) {
        result_buf[i] = source_buf[cur];
}
return result;

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=399027&siteId=1
Recomendado
Clasificación