Salve, avevo creato questo metodo per controlla se una stringa è un anagramma di un'altra
Dopodichè ho scritto quest'altro che è più efficiente.codice:static boolean isAnagram2(String nome1, String nome2, int len) { check.setLength(0); check.append(nome2); label: for (int i = 0; i < len; i++) { for (int j = 1; j < len; j++) { if (nome1.charAt(i) == check.charAt(j)) { check.setCharAt(j, '0'); continue label; } } return false; } return true; }
Voglio sapere, il secondo funziona in ogni caso (Sto lavorando con caratteri a-z)? Ovvero c'è una certezza matematica che funzioni?codice:static boolean isAnagram(String nome1, String nome2, int len) { long x = 1, y = 1; for (int i = 0; i < len; i++) { x *= nome1.charAt(i); y *= nome2.charAt(i); } return x == y; }

Rispondi quotando