标签:重复 问题 一个 lag ring res 图片 alt OLE
/**
*
* 问题:
* 判断字符数组中是否所有的字符都只出现一次
* 给定一个字符类型的数组chars[],判断 chars中是否所有的字符都只出现过一次。
*
* 要求:
* 时间复杂度为 O(N)
* 解答:
* 遍历一遍 chars, 用 map记录每种字符的出现情况, 这样就可以在遍历时发现字符重复
* 出现的情况, map可以用长度固定的数组实现, 也可以用哈希表实现。
*
* @author 雪瞳
*
*/
public class IsUniquel {
public static boolean isUniquel(char chars[]){
if(chars == null){
return true;
}
boolean map[] = new boolean[256];
for(int i=0;i<chars.length;i++){
if(map[chars[i]]){
return false;
}
map[chars[i]]=true;
}
return true;
}
}
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();
}
}
*运行结果
标签:重复 问题 一个 lag ring res 图片 alt OLE
原文地址:https://www.cnblogs.com/walxt/p/12678750.html