Counting Characters in a String
String of unique characters
A neat trick to count the characters in a string of unique characters is to use a 26-bit bitmask to indicate which lower case latin characters are inside the string.
mask = 0
for c in word:
mask |= (1 << (ord(c) - ord('a')))
To determine if two strings have common characters, perform &
on the two bitmasks. If the result is non-zero, ie. mask_a & mask_b > 0
, then the two strings have common characters.