天天看点

判断字符串中是否存在重复字符

题目:判断一个给定的字符串中是否存在重复字符

解答:

为了简单起见,假定需要进行判断的字符串的所有字符都在ASCII基础字符表范围内,判断算法如下:

private boolean hasDuplicateCharacter(String str){
    if(str == null){
        return false;
    }else{
        //虽然编译器在初始化boolean参数时会为其赋默认初始值false,但是正式
        //生产环境仍会要求显式为变量赋初值,此处为偷懒
        boolean[] asciiCodes = new boolean[127];

        for(int i=0; i<str.length; i++){
            char c = str.charAt(i);
            if(asciiCodes[c]){
                return true;
            }else{
                asciiCodes[c] = true;
            }

        }
        
        return false;
    }
}