Leetcode1681-模拟,位运算
题目链接: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 <= 1041 <= allowed.length <=261 <= words[i].length <= 10allowed中的字符 互不相同 。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-模拟,位运算的更多相关文章
- USACO 2.1 海明码 Hamming Codes (模拟+位运算+黑科技__builtin_popcount(n))
题目描述 给出 N,B 和 D,要求找出 N 个由0或1组成的编码(1 <= N <= 64),每个编码有 B 位(1 <= B <= 8),使得两两编码之间至少有 D 个单位 ...
- 模拟+位运算 HDOJ 5491 The Next
题目传送门 题意:意思很简单,找一个最接近D且比D大的数,满足它的二进制表示下的1的个数在[S1, S2]之间 分析:从D + 1开始,若个数小于S1,那么从低位向高位把0替换成1直到S1就是最小值, ...
- 【模拟+递归+位运算】POJ1753-Flip Game
由于数据规模不大,利用爆搜即可.第一次用位运算写的,但是转念一想应该用递归更加快,因为位运算没有剪枝啊(qДq ) [思路] 位运算:时间效率较低(172MS),有些辜负了位运算的初衷.首先将二维数组 ...
- 为什么位运算可以实现加法(1、 不考虑进位的情况下位运算符中的异或^可以表示+号)(2、 位运算符中的与运算符&和左移运算符<<可以模拟加法中的进位)(3、位运算不仅可以做加法,还可以做其它的乘法减法等:计算机本质是二进制运算)
为什么位运算可以实现加法(1. 不考虑进位的情况下位运算符中的异或^可以表示+号)(2. 位运算符中的与运算符&和左移运算符<<可以模拟加法中的进位)(3.位运算不仅可以做加法,还 ...
- 神奇的Noip模拟试题 T3 科技节 位运算
3 科技节 (scifest.pas/.c/.cpp) [问题描述] 一年一度的科技节即将到来.同学们报名各项活动的名单交到了方克顺校长那,结果校长一看皱了眉头:这帮学生热情竟然如此高涨,每个人都报那 ...
- 【NOIP模拟题】“与”(位运算)
因为是与运算,所以我们可以贪心地每次找最高位的,将他们加入到新的序列中,然后每一次在这个新的序列继续找下一个位. 然后最后序列中任意两个的与运算的值都是一样的且是最大的. #include <c ...
- [CSP-S模拟测试]:位运算(数学)
题目传送门(内部题72) 输入格式 输入文件$bit.in$ 每个输入文件包含$T$组测试数据.输入文件的第一行为一个整数$T$,表示数据组数.接下来$T$行,每行表示一组测试数据每组测试数据包括三个 ...
- 模拟赛T5 : domino ——深搜+剪枝+位运算优化
这道题涉及的知识点有点多... 所以还是比较有意思的. domino 描述 迈克生日那天收到一张 N*N 的表格(1 ≤ N ≤ 2000),每个格子里有一个非 负整数(整数范围 0~1000),迈克 ...
- js中的位运算
按位运算符是把操作数看作一系列单独的位,而不是一个数字值.所以在这之前,不得不提到什么是"位": 数值或字符在内存内都是被存储为0和 1的序列,每个0和1被称之为1个位,比如说10 ...
- [位运算] [搜索] [递推优化] [计算几何] TEST 2016.7.15
NOIP2014 提高组模拟试题 第一试试题 题目概况: 中文题目名称 合理种植 排队 科技节 源程序文件名 plant.pas/.c/.cpp lineup.pas/.c/.cpp scifest. ...
随机推荐
- git管理Unity项目
git管理Unity项目的正确打开方式 在创建仓库的时候进行初始化仓库,选择.gitignore模版的时候选择Unity,就能自动过滤不需要的文件 原文链接:https://blog.csdn.net ...
- CentOS 7.6 安装 Mysql 5.7
一.查看CentOS版本 Mysql的版本必须要和CentOS的版本对应!查看CentOS版本的指令如下: cat /etc/redhat-release 二.下载yum源包 wget http:// ...
- 逆序对计数问题之C#实现(O(nlogn))
逆序对计数问题是一个经典的算法问题,常见于计算机科学和数据结构领域.它的目标是计算数组中所有的逆序对的数量.逆序对是指数组中两个元素满足位置关系(i,j),且有 A[i]>A[j]. 它的应用有 ...
- Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: HelloWorld has been compiled by a more
一个新手容易遇到的问题,电脑上装了多个版本的java,比如8和11,导致javac和java的版本不一样 在控制面板里将其他版本卸载,留个8就行 然后在环境变量里重新配置一下就ok
- 全网最全!1500+ 免费、美观的前端网页模板,建站神器(包括HTML、Vue、Angular、React等)!
前言 经常有小伙伴问我 Vue.React.Bootstrap 或者 Angular 这些有好看且免费的前端模板推荐的吗?今天大姚给大家分享一个宝藏网站,它汇聚了1500+ 免费.美观的前端网页模板, ...
- 【译】Visual Studio 扩展管理器更新
Visual Studio 2022 的最新更新引入了专门的设计用于改进扩展管理方式的功能.这些更新提供的工具可以帮助您自动化过程,为配置提供详细的控制,并增强用户界面以简化您的开发工作流程. 无缝自 ...
- 【语义分割专栏】3:Segnet实战篇(附上完整可运行的代码pytorch)
目录 前言 Segnet全流程代码 模型搭建(model) 数据处理(dataloader) 评价指标(metric) 训练流程(train) 模型测试(test) 效果图 结语 前言 Segnet原 ...
- 我整理了 10 条 AI 聊天应用的需求
我整理了 10 条 AI 聊天应用的需求,看看有没有你也需要的. 1. 全局检索(Global Search) 上次那个绝妙的点子,现在只记得它很绝妙了 作为一位大语言模型的深度用户,我的聊天记录已累 ...
- 一些好用的IDEA插件
彩虹括号插件 Rainbow Brackets 可以让成对的括号展示相同颜色 Free Mybatis Tool插件 去看我另一篇文章:https://www.cnblogs.com/maomao77 ...
- My Attitude
不走捷径 长期主义者 选择成长,选择善良 The master has failed more times than the beginner has tried.