/ **
*
* Problema:
* Determine si todos los caracteres en una matriz de caracteres aparecen solo una vez
* Dados los caracteres de una matriz [] de un tipo de carácter, determine si todos los caracteres en caracteres aparecen solo una vez.
*
* Requisitos:
* La complejidad del tiempo es O (N)
* Respuesta:
* Caracteres transversales una vez, use el mapa para registrar la aparición de cada carácter, de modo que pueda encontrar caracteres repetidos durante el recorrido
* La aparición del mapa, el mapa se puede arreglar por longitud La implementación de la matriz también se puede implementar con una tabla hash.
*
* @autor Xuetong
*
* /
public class IsUniquel {
public static boolean isUniquel (char chars []) {
if (chars == null) {
return true;
}
mapa booleano [] = nuevo booleano [256];
for (int i = 0; i <chars.length; i ++) {
if (map [chars [i]]) {
return false;
}
mapa [caracteres [i]] = verdadero;
}
devuelve verdadero;
}
}
public class TestIsUniquel {
public static void main(String[] args) {
char chars1[] ={'a','b','c'};
char chars2[] ={'a','b','c','b'};
boolean result1 = IsUniquel.isUniquel(chars1);
showCharArray(chars1);
showResult(result1);
boolean result2 = IsUniquel.isUniquel(chars2);
showCharArray(chars2);
showResult(result2);
}
public static void showResult(boolean flag){
if(flag){
System.err.println("各个字符元素均出现一次");
}else{
System.err.println("存在字符元素出现多次");
}
}
public static void showCharArray(char array[]){
for (char arr : array) {
System.err.print(arr+"\t");
}
System.out.println();
}
}
*运行结果