Recomposición de cadenas

En este desafío, el objetivo es recomponer cadenas desordenadas formadas por dos o más palabras.

Cada cadena debe dividirse en grupos consecutivos de vocales o consonantes, respetando el orden en que aparecen, e invertir cada grupo de más de una letra para obtener la secuencia correcta:

String = "KiKdaola"

Separation vowels/consonants = K  i  Kd  ao  l  a

Reversing the groups = K  i  dK  oa  l  a

New string = KidKoala

Ahora, debes insertar un espacio entre las palabras. Una palabra comienza con una letra mayúscula:

String = "KidKoala"

Result = "Kid Koala"

Dado un string, implementa una función que devuelva una nueva cadena correcta siguiendo las instrucciones anteriores.

Ejemplos

recompose("KiKdaola") ➞ "Kid Koala"

recompose("BaosdrOCfanada") ➞ "Boards Of Canada"
// B  ao  sdr  O  Cf  a  n  a  d  a
// B  oa  rds  O  fC  a  n  a  d  a

recompose("hCemicarBlohtesr") ➞ "Chemical Brothers"
// hC  e  m  i  c  a  rBl  o  ht  e  sr
// Ch  e  m  i  c  a  lBr  o  th  e  rs

Notas

  • Todas las cadenas proporcionadas serán válidas: contendrán únicamente letras y al menos dos palabras (identificadas por las letras mayúsculas).
  • Recuerda invertir los grupos de letras, no la cadena completa.