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

前端之家收集整理的这篇文章主要介绍了java – Bit Strings:检查一个bitstring是否是另一个的子集前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将这组英文字母表示为26位位串.第一位对应’a’,设置位对应’b’,依此类推.
从而,
字符串ab表示为11000000000000000000000000
现在,给定两个位串,我想检查位串1是否是位串2的子集.也就是说,在所有位置,位串1都有一个’1′,位串2也应该有一个’1′.这意味着string1中的所有字符也存在于string2中.有人可以告诉我最好的方法吗?
我知道一个简单的方法如下:迭代位string1并检查位string2中的相应位.但是,我想知道是否可以以更有效的方式使用一些位运算符来完成

解决方法

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

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

原文链接:https://www.f2er.com/java/129951.html

猜你在找的Java相关文章