Recentemente recebi um desafio que não consigo resolver. Texto do desafio:
“Aconteceu algum problema em nosso servidor e algumas palavras do banco de dados ficaram
com o final duplicado.
Sua tarefa é remover duplicação do fim de cada palavra de um texto, mas somente se todas as
palavras do texto tiverem duplicação.
Envie sua solução em um único arquivo mesmo, nessa etapa vamos avaliar o funcionamento
correto do seu algoritmo”
Exemplo de entrada: “oo ratoato roeuoeu aa roupaoupa dodo reiei
dee romaoma”
Como deve ser a saída: “o rato roeu a roupa do rei de roma”
O que consegui condificar:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
String entrada = "oo ratoato roeuoeu aa roupaoupa dodo reiei dede romaoma";
String [] palavras = entrada.split("");
List<String> resposta = new ArrayList<>();
for(int i = 0, j = 1; i < palavras.length; i++, j ++) {
resposta.add(palavras[i]);
if(palavras[i].contains(" ")) {
if (palavras[i] != " ") {
palavras[i - 1].replace(palavras[i - 1], "");
}
}
}
System.out.println(resposta);
}
}
Resposta que estou obtendo:
[o, o, , r, a, t, o, a, t, o, , r, o, e, u, o, e, u, , a, a, , r, o, u, p, a, o, u, p, a, , d, o, d, o, , r, e, i, e, i, , d, e, d, e, , r, o, m, a, o, m, a]
Eu não estou conseguindo verificar se as letras estão repetidas dentro de cada cadeia de caracter passada depois e antes de cada espaço vazio. Alguém consegue me ajudar, por favor?