欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面试题 01.01. 判定字符是否唯一

程序员文章站 2024-03-04 11:08:23
...

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
面试题 01.01. 判定字符是否唯一

解答1

当最后一次索引的位置不是现在的位置就可以判断重复

        public static boolean isUnique(String astr) {
            for (int i = 0; i < astr.length(); i++){
                char c = astr.charAt(i);
                if (i != astr.lastIndexOf(c)){
                    return false;
                }
            }

            return true;
        }

面试题 01.01. 判定字符是否唯一

解答2

创建一个长度为255的数组,对应所有的字符的ASCII码,并遍历字符串的每一个字符,把相应的计数次数+1。

        public static boolean isUnique(String astr) {
            int [] arr = new int[256];
            char [] crr = astr.toCharArray();
            for (char c: crr){
                if ( arr[(int)c] == 1){
                    return false;
                }
                arr[(int)c] ++;
            }
            return true;
        }

面试题 01.01. 判定字符是否唯一

解答3

        public static boolean isUnique(String astr) {
            int [] arr = new int[256];
            for (int i = 0; i < astr.length(); i++){
                int a = astr.charAt(i) - 'A';
                if (arr[a] == 1){
                    return false;
                }

                arr[a] = 1;
            }
            return true;
        }

面试题 01.01. 判定字符是否唯一

相关标签: 算法与数据结构