Recompondo strings

Neste desafio, o objetivo é recompor strings embaralhadas formadas por duas ou mais palavras.

Cada string deve ser dividida em grupos consecutivos de vogais ou consoantes, respeitando a ordem em que aparecem, e cada grupo com mais de uma letra deve ser invertido para obter a sequência correta:

String = "KiKdaola"

Separation vowels/consonants = K  i  Kd  ao  l  a

Reversing the groups = K  i  dK  oa  l  a

New string = KidKoala

Agora, você precisa inserir um espaço entre as palavras. Uma palavra começa com uma letra maiúscula:

String = "KidKoala"

Result = "Kid Koala"

Dada uma string, implemente uma função que retorne uma nova string correta seguindo as instruções acima.

Exemplos

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

Observações

  • Todas as strings fornecidas serão válidas: conterão apenas letras e pelo menos duas palavras (identificadas pelas letras maiúsculas).
  • Lembre-se de inverter os grupos de letras, não a string inteira.