Dada uma lista de listas, encontre a lista mais curta que é uma sub-lista contígua de exatamente uma lista.
Por exemplo, se tivéssemos
[[1,2,3],
[1,2,3,4],
[2,4,5,6],
[1,2,4,5,6]]
a sub-lista contígua mais curta seria, uma [3,4]
vez que aparece apenas na segunda lista.
Se não houver uma sub-lista contígua exclusiva (isso requer pelo menos uma entrada duplicada), produza uma lista vazia. Aqui está um exemplo
[[1,2,3],
[1,2,3],
[1,2]]
Se houver várias sublistas contíguas de tamanho mínimo, você poderá gerar qualquer uma delas ou uma lista contendo todas elas. Por exemplo, se a entrada foi
[[1,2,3],[2],[1],[3]]
Você pode gerar ou [1,2]
, [2,3]
ou [[1,2],[2,3]]
. Se você optar por fazer a última opção, poderá gerar listas singleton para os casos em que houver apenas uma solução.
A saída pode ocorrer na mesma lista mais de uma vez, desde que não apareça em nenhuma outra lista. Por exemplo
[[1,2,1,2],[2,1]]
deve sair [1,2]
porque [1,2]
é uma sub-lista da primeira lista, mas não a segunda, mesmo sendo uma sub-lista da primeira lista de duas maneiras diferentes.
Você pode usar como entrada uma lista de listas contendo qualquer tipo, desde que esse tipo tenha mais de 100 valores possíveis, ou seja, sem Booleanos.
Isso é código-golfe, então as respostas serão pontuadas em bytes, com menos bytes sendo melhores.
Casos de teste
[[1,1]] : [1]
[[1],[1]] : []
[[1,1],[1]] : [1,1]