caracteres únicos con cambio y operadores: no entiendo este código
No entiendo las líneas en el bucle: tomamos el carácter y restamosa
, entonces "10"? (¿por qué?)
entonces1 << val
: cambiamos 1 por val? (¿por qué?)
y el marcador es 0, entonces, ¿cómo llegamos a> 0
en la condicion?
public static boolean isUniqueChars(String str) {
int checker = 0;
for (int i = 0; i < str.length(); i++) {
int val = str.charAt(i) - 'a';
if ((checker & (1 << val)) > 0) return false;
checker |= (1 << val);
}
return true;
}
Gracias