Pessoal, um cara de um outro tópico fez uma pergunta de como transformar as vogais de uma frase digitada pelo usuário em “X”. (Eu só troquei o X por *)
Eu respondi:
[code]public class TrocaVogal {
public static void main(String[] args) {
String[] lista = new String[]{ "A","E", "I", "O", "U",};
Scanner scn = new Scanner(System.in);
System.out.println("Digite a Palavra ou Frase: ");
String palavra = scn.nextLine().toUpperCase(); //passa pra maiúsculo para nao ter diferença
for (int cont=0;cont<lista.length;cont++) {
palavra = palavra.replace(lista[cont],"*");
}
System.out.println("Palavra com substituição: " + palavra);
}
}[/code]
Bom, o desafio é o seguinte
Eu digitei a frase, e obtive a seguinte saída:
[color=red]Palavra com substituição:[/color] DSF** PR S GJNS. TNTM DSCBRR * SGNFCD* RL DSS FRS.
Proponho um algoritimo, que teste as possibilidades, assim descubrindo qual é a frase “escondida”…
Não é para sair chutando não… O algorítimo vai “xutar” para você, e você vai pegar a frase que tiver sentido…
Ex.: Palavra com substituição: FC
Saída:
FICI
FICO
FACA
FOCI
FICA
FAFI
E muitas outras combinações
Vão ser muitas saídas… Se quiserem usar um arquivo .txt com um dicionário, para se não tiver sentido uma palavra, não ser impressa pode usar
Ex.: Nesse caso, as unicas saída seriam FICA e FACA
Ou fassam no brutal force mesmo, com todas as possiveis combinações (que são muitas).
Antes estava com “X”, mas por sugestão do marky, passei para *, para não confundir com a letra *.
Um espírito de porco já falou o que é a frase, mas o desafio continua, de um algorítimo feito para descubrir (e não a mente humana)
Boa sorte ae =D