位于计算
判断句子是否为全字母句
由于字符集仅有 26 个,我们可以使用一个长度为 26 的二进制数字来表示字符集合,这个二进制数字使用 32 位带符号整型变量即可。 二进制数字的第 i 位对应字符集中的第 i 个字符,例如 0 对应 a,1 对应 b,23 对应 x 等。 我们需要判断 exist 是否等于 2^{26} - 1,这个数字的第 0∼25 位都为 1,其余位为 0。
var checkIfPangram = function (sentence) {
let state = 0
for (let i = 0; i < sentence.length; i++) {
const c = sentence[i]
// state = state | 1 << (c.charCodeAt() - 'a'.charCodeAt())
// 1 << 3 表示 111
state |= 1 << (c.charCodeAt() - 'a'.charCodeAt())
}
return state === (1 << 26) - 1
}