import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 两个长整型数字二进制位和为128位 刚好存储0-127的ascii码是否出现过
long a = 0L, b = 0L;
for (char c : in.nextLine().toCharArray()) {
// 掩码 用于计算c是否出现过
long mask = 1L << c;
// 0 - 63
if (c < Long.SIZE) {
a = (a & mask) == 0 ? a ^ mask : a;
// 64 - 127
} else {
b = (b & mask) == 0 ? b ^ mask : b;
}
}
// 汉明重量和即为不同数
System.out.println(Long.bitCount(a) + Long.bitCount(b));
}
}
写完看到题解有人用BitSet 学到了 一直不知道Java还有这个类 这个思路和bitset的思路是一样的