利用位运算将大小写字母压缩进一个64bit的变量
package main
import (
"fmt"
)
// 给定一个只由大小写字母构成的字符串,查找出该字符串中未出现过的字母,可能1个或多个
func main() {
str := "AbcDEfghikkkkkkkmNopqrstuvwxyz"
bit := uint64(0)
for i := 0; i < len(str); i++ {
bit |= 1 << (str[i] - 'A')
}
for i := 'A'; i <= 'z'; i++ {
if i > 'Z' && i < 'a' {
continue
}
if bit&(1<<(i-'A')) == 0 {
fmt.Printf("%c 不存在\n", i)
}
}
}