[Likou] 58. ¿Es el recorrido inverso de la longitud de la última palabra la solución óptima?

Llega oferta, cava amigos a recoger! Estoy participando en el evento de registro de reclutamiento de primavera de 2022, haga clic para ver los detalles del evento .

El artículo 30 sobre el día 22 de la tarjeta perforada de reclutamiento de primavera.

El estudio diligente es como una semilla que brota, no crece, pero crece cada día; la deserción escolar es como una piedra para afilar un cuchillo, no ve su pérdida, pero pierde todos los días.

Hay tantas actividades para los Nuggets... Este mes, decidí usar preguntas para ir a cepillar todos los días.

¡Vamos!

Tema Descripción

Se le proporciona una cadena s que consta de varias palabras separadas por algunos caracteres de espacio antes y después de ellas. Devuelve la longitud de la última palabra de la cadena.

Una palabra es la subcadena más grande que consta de solo letras y no contiene caracteres de espacio.

Ejemplo

Ejemplo 1:

Entrada: s = "Hola mundo"

salida: 5

Explicación: La última palabra es "Mundo" y tiene una longitud de 5.

Ejemplo 2:

输入:s = "llévame a la luna"

salida: 4

Explicación: La última palabra es "luna" y tiene una longitud de 4.

Ejemplo 3:

Entrada: s = "luffy sigue siendo joyboy"

Salida: 6

Explicación: La última palabra es "joyboy" de longitud 6.  

insinuación:

1 <= s.longitud <= 1 0 4 10^{4}

s solo consta de letras y espacios en inglés ' '

hay al menos una palabra en s

análisis de tema

  1. Después de leer la descripción del título, la primera reacción es dividir la cadena en matrices basadas en espacios
  2. Obtener la longitud de la última palabra en la matriz es la longitud que necesitamos
  3. Pero el método anterior no es la solución óptima, ya que queremos encontrar la longitud de la última palabra, podemos usar 反向遍历la idea

explicacion de ideas

  1. De acuerdo con el significado de la pregunta, podemos saber que hay al menos una palabra en la cadena, por lo que debe haber letras en la cadena.
  2. Primero busque la última letra de la cadena, que es la última letra de la última palabra.
  3. Continúe recorriendo la cadena en sentido inverso, comenzando por la última letra, hasta encontrar un espacio o llegar al principio de la cadena.
  4. Cada letra atravesada es una letra en la última palabra, por lo que el número de letras atravesadas es la longitud de la última palabra.

código de CA

func lengthOfLastWord(s string) (ans int) {
    //倒序遍历 获得最大索引位置
    index := len(s) - 1
    for s[index] == ' ' {
        index--
    }
    //倒序索引未跑完并且索引对应的值不是空字符串时
    for index >= 0 && s[index] != ' ' {
        ans++
        index--
    }
    return
}
复制代码

resultado de la operación

imagen.png

Resumir

Análisis de Complejidad:

Complejidad de tiempo: O(n), donde n es la longitud de la cadena.

Complejidad espacial: O(1).

Descripción de la fuente

Fuente: Código Leet

Enlace: leetcode-cn.com/problems/le…

Los derechos de autor pertenecen a Lingkou Network. Para reimpresiones comerciales, comuníquese con la autorización oficial y para reimpresiones no comerciales, indique la fuente.

finalmente

Gracias por leer y bienvenidos a todos: me gusta, favorito,moneda(concentrarse en)! ! !

8e95dac1fd0b2b1ff51c08757667c47a.gif

Supongo que te gusta

Origin juejin.im/post/7079210376222474271
Recomendado
Clasificación