看到这个题目, 然后发现里面一个算法, 颇耐人寻味, 然后就记载下来了。
对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。
测试样例:
"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";
}
网友评论