比特位操作示例

1、设计一个算法移除字符串中的重复字符(来至网络
1 /*
2 * 将str中的重复字符删除掉,返回不包含重复字符的字符串
3 *
4 * 因Java中,int二进制位为32位,也即只能有32个互相与为0的情况:
5 * 00000000 00000000 00000000 00000000 1<<0
6 * 00000000 00000000 00000000 00000001 1<<1
7 * 00000000 00000000 00000000 00000010 1<<2
8 * 00000000 00000000 00000000 00000100 1<<3
9 * 、、、、、、
10 * 所以,此函数仅可以对仅含有小写字符的字符可用
11 */
12 static String unique(String str){
13 StringBuilder sb = new StringBuilder();
14 int checker = 0;
15 for(int i=0;i<str.length();i++){
16 int t = str.charAt(i)-'a';
17 System.out.println(str.charAt(i));
18 if((checker&(1<<t))==0){
19 sb.append(str.charAt(i));
20 }
21 checker |= 1<<t;
22 }
23 return sb.toString();
24 }
posted @ 2011-04-22 15:21  奋奋  阅读(551)  评论(0编辑  收藏  举报