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 < 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:
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