Invertir las palabras de una cadena

Dada una cadena de entrada, invierte el orden de sus palabras.

Ejemplos

reverse_words("the sky is blue"); // "blue is sky the"
reverse_words("  hello world!  "); // "world! hello"
reverse_words("a good   example"); // "example good a"

Notas

  • Una palabra se define como una secuencia de caracteres que no son espacios.
  • La cadena de entrada puede contener espacios al principio o al final. Sin embargo, la cadena invertida no debe contener espacios al principio ni al final.
  • En la cadena invertida, debes reducir a uno solo los espacios múltiples entre dos palabras.
  • Intenta resolverlo en tiempo lineal.

Descripción y solución en video