如何设计一个高效算法,找到第一次重复出现的字符?

看到这个题目, 然后发现里面一个算法, 颇耐人寻味, 然后就记载下来了。

对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。

测试样例:
"qywyer23tdd"

返回:y

    private static String findFirstRepeatChar(String string) {
        int[] charset = new int[8];
        char[] chars = string.toCharArray();
        for (char c : chars) {
            int row = c / 32;
            int col = c % 32;
            if ((charset[row] & 1 << col) != 0) {
                return String.valueOf(c);
            } else {
                charset[row] |= (1 << col);
            }
        }
        return "-1";
    }

你可能感兴趣的:(如何设计一个高效算法,找到第一次重复出现的字符?)