常見類型介紹:
- & :有 0 就是 0
| :有 1 就是 1
^ :相同為 0 ,相異為 1 或者 無進位相加- 給定一個數確定它的二進制位的第x個數是0還是1:
- 將一個數的二進制的第x位改成1:
- 將一個數的二進制的第x位改成0:
- 提取一個數的二進制位的最右側的1:
- 修改一個數的二進制位的最右側的1:
- ?^? 異或運算:
1、判定字符是否唯一 - 力扣(LeetCode)
思路:
- 解法一:哈希表(hash[26]表示一個哈希表)
- 解法二:使用位圖,一個整型有三十二位比特位,用每個比特位存儲的0 1來表示有沒有重復
- 代碼:
public boolean isUnique(String astr) {int n = astr.length();char[] s = astr.toCharArray();//字符串長度大于26就肯定重復if(n > 26){return false;}int tmp = 0;for(int i = 0; i < n; i++){int x = s[i] - 'a';//先判斷是否在位圖中if(((tmp >> x) & 1) == 1){return false;}//把當前字符添加到位圖中tmp |= (1 << x);}return true;}