Ordenação reversa: ordem lexicográfica e comprimento

Escreva uma função que ordene as palavras de uma string fornecida lexicograficamente (ordenação lexicográfica) e por comprimento em ordem reversa.

Exemplos

reverseSort("You've rocked the pragmatic world in the making!") 
 ➞ "pragmatic making! You've rocked world the the in"

reverseSort("Tesh makes my world worth enjoying and living for.")
 ➞ "enjoying living worth world makes Tesh for. and my"

reverseSort("Shaken by the bloody truth and crazy lies.")
 ➞ "Shaken bloody truth lies. crazy the and by"

reverseSort("Java streams and collections are fun to program with!")
 ➞ "collections streams program with! Java fun are and to"

Observações

  • Caracteres especiais, sinais de pontuação e símbolos fazem parte da palavra que os precede diretamente.
  • O caractere de espaço separa cada palavra da string fornecida.
  • A ordenação deve ignorar maiúsculas e minúsculas.