首页 > 其他分享 >位运算找是否有相同元素

位运算找是否有相同元素

时间:2024-02-03 17:11:52浏览次数:36  
标签:字符 ch 运算 相同 左移 mask 然后 按位 元素

vector<string> words= {"abcw","asd","awgf","dggg"}

for (int i = 0; i < n; ++i) {

  for (char ch : words[i]) {

    mask[i] |= 1 << (ch - 'a');

  }

}

给定string “abcf”

初始:mask: 00000000

(一)对于字符 'a',计算 (ch - 'a') 的值为 0,然后将 1 << 0 左移0位得到1。然后进行按位或操作:mask |= 1 << 0,得到:  mask: 00000001

(二)对于字符 'b',计算 (ch - 'a') 的值为 1,然后将 1 << 1 左移1位得到2。然后进行按位或操作:mask |= 1 << 1,得到:  mask: 00000011

(三)对于字符 'c',计算 (ch - 'a') 的值为 2,然后将 1 << 2 左移2位得到4。然后进行按位或操作:mask |= 1 << 2,得到:  mask: 00000111

(四)对于字符 'a',计算 (ch - 'a') 的值为 0,然后将 1 << 0 左移0位得到1。由于当前的 mask 已经有第0位为1了,所以不会改变:  mask: 00000111

(五) 对于字符 'f',计算 (ch - 'a') 的值为 5,然后将 1 << 5 左移5位得到32。然后进行按位或操作:mask |= 1 << 5,得到:  mask: 00100111

 

对于两个不同string的mask

if(mask[i] & mask[j]  == 0)  //没有共同的字母

  

 

标签:字符,ch,运算,相同,左移,mask,然后,按位,元素
From: https://www.cnblogs.com/zhangdudu/p/18004959

相关文章

  • 我对二进制的运算和用途的认识与思考
    在初步了解计算机的“大脑核心“CPU之后,对于计算机是如何处理数据、指令、函数的流程有了大致的逻辑认知。在阅读过有关二进制的知识后,对于计算机构成和运行有了更深的了解,主要分为对于二进制的运算和用途的思考。首先,作为计算机核心的CPU同其他计算机组件一样,都属于IC集成电路的......
  • (坚持每天写算法)算法学习与复习part1基础算法1-13——位运算
    最近确实有在写算法,在写dp,之前学的时候不全,被计数,树型等dp折磨了一下。位运算是将重点放在数字的位上,通常作为辅助行动,比如状态dp,有的时候是为了节省时空复杂度而使用的。这是今天的题目: 位运算应用的情况除了上面讲的,还有单纯的位问题,上面的题目就是一个例......
  • 获取数组中元素的所有组合方式
    代码/***获取words成员的所有组合方式*@param{(string|number)[]}words*@return{(string|number)[][]}*/functioncombine(words){constlist=[]words.forEach((word,idx)=>{constrestWords=[...words.slice(0,idx),...words.slice(......
  • 计算机中的基本运算
    二进制的算术运算1.二进制的加法运算示例:0+0=00+1=11+0=11+1=101011+1001=101002,二进制的减法运算示例:1-1=01-0=10-0=00-1=1(解释一下这个,可以看作是向前借1,看作2-1)1101-1010=0011(当然前面的0是可以省略的)3.二进制的乘法运算示例:101X11=11114.二......
  • 力扣 34. 在排序数组中查找元素的第一个和最后一个位置
    Problem: 34.在排序数组中查找元素的第一个和最后一个位置思路找到大于等于target的下标,然后遍历之后的数组,找到最后的下标。classSolution{public:intf(vector<int>&nums,inttarget){intl=0,r=nums.size()-1;intmid=floor(l+(r-l)*1.0/2);......
  • C++编程练习||创建一个名为Rational的类,进行分数运算。
    题目:创建一个名为Rational的类,进行分数运算。创建一个名为Rational的类,进行分数运算。用整数变量表示类的private数据-numerator(分子)和denominator(分母)。提供一个带默认值的构造函数,并且它应该以简化的形式保存分数。例如分数2/4应在对象中保存为numerator为1,denominator为2的形式。......
  • 微信小程序如何控制元素的显示和隐藏
    Hello大家好我是咕噜铁蛋!在微信小程序开发中,控制元素的显示和隐藏是非常常见的需求。通过控制元素的显示和隐藏,我们可以根据用户的操作或特定的条件来动态地展示或隐藏某些内容,从而提升用户体验。在本文中,我将分享如何在微信小程序中实现元素的显示和隐藏的方法。使用wx:if和hidden......
  • 运算符
    运算符Java语言支持如下运算符:优先级()算数运算符:+、-、*、/、%、++,--packageoperator;publicclassDemo04{publicstaticvoidmain(String[]args){//++--自增,自减一元运算符inta=3;intb=a++;//执行完这行代码后,先给b赋值......
  • 深度学习框架:为啥不同的框架,不同的运行设备(GPU/CPU/NPU),运算出的结果性能会有一定百分
    经常会遇到有人在网上说,TensorFlow的计算结果比pytorch的高上几个百分点,也有人说RTX3090的计算结果没有A100的好,还有人说NPU的计算结果比GPU的高,而且这种说法在业内也是极为常见的,甚至在读书时的实验室里和人交流也会有这种反馈,这里对其说说自己的理解。算法本质导致的随机性,......
  • 题目:陆地上的地壳主要成分是什么元素
    问题:陆地上的地壳主要由长石和石英等矿物组成,主要成分是()元素。A.氧、钙、铁B.氧、硅、铝C.钙、铁、硅D.氧、铁、硅参考答案如图,发送题目到公众号学哈,秒回答案......