Pessoal estou com dificuldade de encontrar solução para seguinte questão: escreva um algoritimo em java que retorne a quantidade de pares de substrings que são anagramas em uma String:
Entrada: ovo
Saida: 3 = “o,o”; “ov, vo”
Entrada: ifailuhkqq
Saida: 3 = “i,i”; “q, q”; “ifa, fai”;
Problema 1 - se vocês observarem a primeira entrada conta-se dois pares o seguinte anagrama - “ov” e “vo”, mas na segunda entrada, o anagrama “ifa” e “fai” conta como um só. É um erro da questão, ou há alguma lógica por detrás disso?
Problema 2 - A saída deve ser um número com a quantidade total de anagramas, criei um ArrayList para controlar a quantidade de anagramas, mas para minha surpresa descobri que não posso utilizar a propriedade .length() em um ArrayList ou List, como posso fazer para extrair a quatidade de itens na lista?
Escrevi o código abaixo
public static void main(String[] args) {
String palavra = "ovo";
ArrayList<String> anagramas = new ArrayList<String>();
for(int i = 0; i <palavra.length(); i++) {
for(int j = 1; j < palavra.length(); j++) {
if(palavra.charAt(i) == palavra.charAt(j) && i !=j && i < j) {
if(palavra.charAt(i) == palavra.charAt(i+1)) {
String x = palavra.substring(i, i + 1);
anagramas.add(x);
} else {
String y = palavra.substring(i, j);
String z = palavra.substring(i + 1, j + 1);
String h = palavra.substring(i, i + 1);
anagramas.add(h);
anagramas.add(y);
anagramas.add(z);
}
}
}
}
System.out.println(anagramas);
}
de não ter passado 