题目链接:https://leetcode.cn/problems/count-the-number-of-consistent-strings/description/

32位int构造出现过的字符集合

位运算解法:用按位或(|)构造1个32位的数字集合A存用过的字符,此时对目标串构造字符集合B(有B是A子集,A∪B = A),注意运算优先级

题目:

给你一个由不同字符组成的字符串 allowed 和一个字符串数组 words 。如果一个字符串的每一个字符都在 allowed 中,就称这个字符串是 一致字符串 

请你返回 words 数组中 一致字符串 的数目。

示例 1:

输入:allowed = "ab", words = ["ad","bd","aaab","baa","badab"]
输出:2
解释:字符串 "aaab" 和 "baa" 都是一致字符串,因为它们只包含字符 'a' 和 'b' 。

示例 2:

输入:allowed = "abc", words = ["a","b","c","ab","ac","bc","abc"]
输出:7
解释:所有字符串都是一致的。

示例 3:

输入:allowed = "cad", words = ["cc","acd","b","ba","bac","bad","ac","d"]
输出:4
解释:字符串 "cc","acd","ac" 和 "d" 是一致字符串。

提示:

  • 1 <= words.length <= 104
  • 1 <= allowed.length <=26
  • 1 <= words[i].length <= 10
  • allowed 中的字符 互不相同 。
  • words[i] 和 allowed 只包含小写英文字母。

ACcode:

class Solution {
public:
int countConsistentStrings(string allowed, vector<string>& words) {
int w0 = 0;
for(auto c: allowed) {
w0 |= 1 << c - 'a';
}
int res = 0;
for(auto word: words) {
int w1 = 0;
for(auto k: word) {
w1 |= 1 << k - 'a';
}
if((w1 | w0) == w0) res ++;
}
return res;
}
};

当时思路:

当时一眼想的就是模拟,遍历存all模板数组中出现过的字符,对目标串逐个扫描,但是不知道怎么对string数组中每个字符串的字符进行扫描

解决方法:

两重循环范围遍历,第一重扫每个串,第二重扫每个串中的每个字符

然后看到了位运算的这个想法,就学习了一下(T.T真的没想到诶)

Leetcode1681-模拟,位运算的更多相关文章

  1. USACO 2.1 海明码 Hamming Codes (模拟+位运算+黑科技__builtin_popcount(n))

    题目描述 给出 N,B 和 D,要求找出 N 个由0或1组成的编码(1 <= N <= 64),每个编码有 B 位(1 <= B <= 8),使得两两编码之间至少有 D 个单位 ...

  2. 模拟+位运算 HDOJ 5491 The Next

    题目传送门 题意:意思很简单,找一个最接近D且比D大的数,满足它的二进制表示下的1的个数在[S1, S2]之间 分析:从D + 1开始,若个数小于S1,那么从低位向高位把0替换成1直到S1就是最小值, ...

  3. 【模拟+递归+位运算】POJ1753-Flip Game

    由于数据规模不大,利用爆搜即可.第一次用位运算写的,但是转念一想应该用递归更加快,因为位运算没有剪枝啊(qДq ) [思路] 位运算:时间效率较低(172MS),有些辜负了位运算的初衷.首先将二维数组 ...

  4. 为什么位运算可以实现加法(1、 不考虑进位的情况下位运算符中的异或^可以表示+号)(2、 位运算符中的与运算符&和左移运算符<<可以模拟加法中的进位)(3、位运算不仅可以做加法,还可以做其它的乘法减法等:计算机本质是二进制运算)

    为什么位运算可以实现加法(1. 不考虑进位的情况下位运算符中的异或^可以表示+号)(2. 位运算符中的与运算符&和左移运算符<<可以模拟加法中的进位)(3.位运算不仅可以做加法,还 ...

  5. 神奇的Noip模拟试题 T3 科技节 位运算

    3 科技节 (scifest.pas/.c/.cpp) [问题描述] 一年一度的科技节即将到来.同学们报名各项活动的名单交到了方克顺校长那,结果校长一看皱了眉头:这帮学生热情竟然如此高涨,每个人都报那 ...

  6. 【NOIP模拟题】“与”(位运算)

    因为是与运算,所以我们可以贪心地每次找最高位的,将他们加入到新的序列中,然后每一次在这个新的序列继续找下一个位. 然后最后序列中任意两个的与运算的值都是一样的且是最大的. #include <c ...

  7. [CSP-S模拟测试]:位运算(数学)

    题目传送门(内部题72) 输入格式 输入文件$bit.in$ 每个输入文件包含$T$组测试数据.输入文件的第一行为一个整数$T$,表示数据组数.接下来$T$行,每行表示一组测试数据每组测试数据包括三个 ...

  8. 模拟赛T5 : domino ——深搜+剪枝+位运算优化

    这道题涉及的知识点有点多... 所以还是比较有意思的. domino 描述 迈克生日那天收到一张 N*N 的表格(1 ≤ N ≤ 2000),每个格子里有一个非 负整数(整数范围 0~1000),迈克 ...

  9. js中的位运算

    按位运算符是把操作数看作一系列单独的位,而不是一个数字值.所以在这之前,不得不提到什么是"位": 数值或字符在内存内都是被存储为0和 1的序列,每个0和1被称之为1个位,比如说10 ...

  10. [位运算] [搜索] [递推优化] [计算几何] TEST 2016.7.15

    NOIP2014 提高组模拟试题 第一试试题 题目概况: 中文题目名称 合理种植 排队 科技节 源程序文件名 plant.pas/.c/.cpp lineup.pas/.c/.cpp scifest. ...

随机推荐

  1. 2024网鼎杯青龙组Misc详解

    MISC01 某单位网络遭到非法的攻击,安全人员对流量调查取证之后保存了关键证据,发现人员的定位信息存在泄露,请对其进行分析.flag为用户位置信息进行32位md5哈希值 位置信息,所有我们开始试ip ...

  2. [RCTF2015]EasySQL 报错注入与二次注入

    [RCTF2015]EasySQL 报错注入与二次注入 二次注入,可以概括为以下两步: 第一步:插入恶意数据 进行数据库插入数据时,对其中的特殊字符进行了转义处理,在写入数据库的时候又保留了原来的数据 ...

  3. 异步之舞:FastAPI与MongoDB的极致性能优化之旅

    title: 异步之舞:FastAPI与MongoDB的极致性能优化之旅 date: 2025/05/23 21:55:11 updated: 2025/05/23 21:55:11 author: ...

  4. K8s中的污点和容忍

    概述 官方文档:https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/ 污点是作用在k8 ...

  5. ThinkBook16p2023(i9-13900H)使用m2转接oculink外接RTX4070Ti Super跑分

    ThinkBook16p2023(i9-13900H)使用m2转接oculink外接RTX4070Ti Super跑分 自媒体跑分 内屏 NVIDIA GeForce RTX 4070 Ti SUPE ...

  6. 2021NOI 省选训练赛day2T1 A. 黑白沙漠

    2021NOI 省选训练赛day2T1 A. 黑白沙漠 Problem 在一条长度有限的数轴 \([L,R]\) 上,有 \(N\) 栋建筑物.其中第 \(i\) 栋建筑物的坐标为 \(x_i\) , ...

  7. GoLand2023设置GitBash为默认命令行终端

    修改设置中的终端配置,将其修改为你的git bash启动脚本,注意需要带-login -i: 验证成功:

  8. 2023人形全能赛openmv巡线代码

    openmv import sensor, image, time, math from pyb import LED, millis, UART class RobotControl: flag = ...

  9. 小白也行的:Easy OCR做一款免费的图片转文字

    \(\text{EasyOCR}\) 支持超过 \(80\) 种语言的识别,包括英语.中文(简繁).阿拉伯文.日文等,并且该库在不断更新中,未来会支持更多的语言.像市面上所有的图片识别都用的是 \(\ ...

  10. go 进阶训练营 微服务可用性(下)笔记

    降级: 减少工作量,丢弃不重要的请求. 确定具体采用哪个指标作为流量评估和优雅降级的决定性指标: 如 CPU.延迟.队列长度.线程数量.错误等 当服务进入降级时,需要执行什么动作? 流量抛弃或者优雅降 ...