Instruções

Definir consolidação

Dado dois conjuntos de itens, se algum item for comum a qualquer conjunto, então o resultado da aplicação de *consolidation* a esses conjuntos é um conjunto de conjuntos cujo conteúdo é: <ul> <li>The two input sets if no common item exists between the two input sets of items.</li> <li>The single set that is the union of the two input sets if they share a common item.</li> </ul> Dados N conjuntos de itens em que N > 2, o resultado é o mesmo que substituir repetidamente todas as combinações de dois conjuntos por sua consolidação até que nenhuma consolidação adicional entre os pares de conjuntos seja possível. Se N &lt; 2, a consolidação não terá nenhum significado estrito e a entrada pode ser retornada. Aqui estão alguns exemplos: Exemplo 1: Dados os dois conjuntos {A,B} e {C,D}, não há elemento comum entre os conjuntos e o resultado é o mesmo que a entrada. Exemplo 2: Dado os dois conjuntos {A,B} e {B,D} então há um elemento comum B entre os conjuntos e o resultado é o conjunto único {B,D,A}. (Observe que a ordem dos itens em um conjunto é irrelevante: {A,B,D} é o mesmo que {B,D,A} e {D,A,B}, etc). Exemplo 3: Dados os três conjuntos {A,B}, {C,D} e {D,B} não há elemento comum entre os conjuntos {A,B} e {C,D}, mas os conjuntos {A,B} e {D,B} compartilham um elemento comum que é consolidado, produzindo o resultado {B,D,A}. Ao analisar este resultado com o conjunto restante, {C,D}, eles compartilham um elemento comum e assim são consolidados na saída final do conjunto único {A,B,C,D} Exemplo 4: A consolidação dos cinco conjuntos: {H,I,K}, {A,B}, {C,D}, {D,B} e {F,G,H} São os dois conjuntos: {A, C, B, D} e {G, F, I, H, K}

O que fazer:

Escreva uma função que receba um array de strings como parâmetro. Cada string representa um conjunto com os caracteres que representam os elementos do conjunto. A função deve retornar um array 2D contendo os conjuntos consolidados. Observação: cada conjunto deve ser ordenado.

Critérios de Aceitação:

Testes:

  • `setConsolidation` deve ser uma função.
  • `setConsolidation(["AB", "CD"])` deve retornar um array.
  • `setConsolidation(["AB", "CD"])` deve retornar `[["C", "D"], ["A", "B"]]`.
  • `setConsolidation(["AB", "BD"])` deve retornar `[["A", "B", "D"]]`.
  • `setConsolidation(["AB", "CD", "DB"])` deve retornar `[["A", "B", "C", "D"]]`.
  • `setConsolidation(["HIK", "AB", "CD", "DB", "FGH"])` deve retornar `[["F", "G", "H", "I", "K"], ["A", "B", "C", "D"]]`.

Console