二进制快速判断两个字符串是否含有相同字符

bool ok(int a, int b){
	memset(mark, 0, sizeof mark);
	int len1 = strlen(rec[a]);
	int len2 = strlen(rec[b]);
	for(int i = 0;i < len1;i++){
		mark[0] |= 1 << rec[a][i] - 'a';
	}
	for(int i = 0;i < len2;i++){
		mark[1] |= 1 << rec[b][i] - 'a';
	}
	if(mark[0] & mark[1]){
		return true;
	}
	return false;
}

以'a'为下界

你可能感兴趣的:(算法)