【发布时间】:2012-09-04 01:54:54
【问题描述】:
我将英文字母集表示为 26 位位串。第一位对应于'a',设置位对应于'b',依此类推。
因此,
字符串 ab 表示为 11000000000000000000000000
现在,给定两个位串,我想检查位串 1 是否是位串 2 的子集。也就是说,位串 1 在所有地方都有一个“1”,位串 2 也应该有一个“1”。这意味着 string1 中的所有字符也存在于 string2 中。有人可以告诉我最好的方法吗?
我知道一个简单的方法如下:遍历位string1并检查位string2中的相应位。但是,我想知道这是否可以使用一些位运算符以更有效的方式完成
【问题讨论】:
-
这是如何存储的,作为
String或作为占据前 26 位的整数值 (Integer)?如果是后者,简单的按位运算应该可以解决问题,否则会更复杂..
标签: java algorithm bytearray byte