Inspirado por essa pergunta despretensiosa do StackOverflow .
A ideia é simples; dado uma String e uma matriz de Strings, remova quaisquer instâncias de palavras na matriz (ignorando maiúsculas e minúsculas) da String de entrada diferente da primeira, juntamente com qualquer espaço em branco adicional que isso possa deixar. As palavras devem corresponder a palavras inteiras na String de entrada, e não partes das palavras.
por exemplo, "A cat called matt sat on a mat and wore a hat A cat called matt sat on a mat and wore a hat", ["cat", "mat"]
deve produzir"A cat called matt sat on a mat and wore a hat A called matt sat on a and wore a hat"
Entrada
- A entrada pode ser tomada como uma String e uma matriz de Strings ou uma matriz de Strings em que a String de entrada é o primeiro elemento. Esses parâmetros podem estar em qualquer ordem.
- A entrada String não pode ser considerada uma lista de Strings delimitadas por espaço.
- A String de entrada não terá espaços à esquerda, à direita ou consecutivos.
- Toda entrada conterá apenas caracteres [A-Za-z0-9], com exceção da String de entrada, incluindo também espaços.
- A matriz de entrada pode estar vazia ou conter palavras que não estão na String de entrada.
Resultado
- A saída pode ser o valor de retorno de uma função ou impressa em STDOUT
- A saída deve estar no mesmo caso que a String original
Casos de teste
the blue frog lived in a blue house, [blue] -> the blue frog lived in a house
he liked to read but was filled with dread wherever he would tread while he read, [read] -> he liked to read but was filled with dread wherever he would tread while he
this sentence has no matches, [ten, cheese] -> this sentence has no matches
this one will also stay intact, [] -> this one will also stay intact
All the faith he had had had had no effect on the outcome of his life, [had] -> All the faith he had no effect on the outcome of his life
5 times 5 is 25, [5, 6] -> 5 times is 25
Case for different case, [case] -> Case for different
the letters in the array are in a different case, [In] -> the letters in the array are a different case
This is a test Will this be correct Both will be removed, [this,will] -> This is a test Will be correct Both be removed
Como este é um código de golfe, a contagem de bytes mais baixa ganha!
This is a test Will this be correct Both will be removed
+this will
. As duas segundas palavras foram removidas corretamente, mas também removeram abe
após a segundawill
por algum motivo.