CI1.1 实现一个算法,确定一个字符串的所有字符是否全部不同。假使不允许使用额外的数据结构。

来源:互联网 发布:软件小站的解压密码 编辑:程序博客网 时间:2024/04/29 21:01

实现一个算法,确定一个字符串的所有字符是否全部不同。假使不允许使用额外的数据结构。

优化:若为ASCII字符串,字符串的长度大于字母表的字符个数,直接返回false。
解法一:构建布尔数组。索引对应的标记指示字符串是否含有此字符。若字符第二次出现,返回false。

    public static boolean isUniqueChars(String str){        if(str.length() > 256) return false;        boolean[] char_set = new boolean[256];        for(int i = 0; i < str.length(); i++){            int val = str.charAt(i);            if(char_set[val]){                return false;            }            char_set[val] = true;        }        return true;    }

时间复杂度O(n),空间复杂度O(1)
解法二:字符一个一个比较,时间复杂度O(n^2),空间复杂度O(1)

0 0
原创粉丝点击