加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Bit Strings:检查一个bitstring是否是另一个的子集

发布时间:2020-12-15 00:52:43 所属栏目:Java 来源:网络整理
导读:我将这组英文字母表示为26位位串.第一位对应’a’,设置位对应’b’,依此类推. 从而, 字符串ab表示为11000000000000000000000000 现在,给定两个位串,我想检查位串1是否是位串2的子集.也就是说,在所有位置,位串1都有一个’1′,位串2也应该有一个’1′.这意味着
我将这组英文字母表示为26位位串.第一位对应’a’,设置位对应’b’,依此类推.
从而,
字符串ab表示为11000000000000000000000000
现在,给定两个位串,我想检查位串1是否是位串2的子集.也就是说,在所有位置,位串1都有一个’1′,位串2也应该有一个’1′.这意味着string1中的所有字符也存在于string2中.有人可以告诉我最好的方法吗?
我知道一个简单的方法如下:迭代位string1并检查位string2中的相应位.但是,我想知道是否可以以更有效的方式使用一些位运算符来完成

解决方法

如果您确实只使用了26位,则可以使用整数(32位)来表示位集,并使用 bitwise AND(&)运算符来获取两组中的 intersection.

如果& b == a,a是b的子集

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读