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

实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
在这里插入图片描述

解答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;
        }

在这里插入图片描述

解答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;
        }

在这里插入图片描述

解答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;
        }

在这里插入图片描述

发布了261 篇原创文章 · 获赞 84 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/zhizhengguan/article/details/105632569
今日推荐