题解 | #字符个数统计#
字符个数统计
https://www.nowcoder.com/practice/eb94f6a5b2ba49c6ac72d40b5ce95f50
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的思路是一样的
#华为笔试#