Public Boolean isuniquechars2 (string Str) {int checker = 0; For (INT I = 0; I <Str. length (); I ++) {int val = Str. charat (I)-'A'; // ensure that the Val value cannot exceed 26 if (checker & (1 <Val)> 0) {return false ;} else {checker | = (1 <Val); // checker = checker | (1 <Val)} return true ;}
Bitwise operation &: assume it is a string of abcccd. When scanning, val = 0 = 0000 0000 0000 0000 0000 0000 0000 0000 1 <0 = 0000 0000 0000 0000 0000 0000 0000 0001 <0 = 0000 0000 0000 0000 0000 0000 0000 0001 checker = 0 = 0000 0000 0000 0000 0000 0000 0000 0000 checker & (1 <Val) = 0000 0000 0000 0000 0000 0000 0000 & 0000 0000 0000 0000 0000 0000 0000 0000 0001 = 0000 0000 0000 0000 0000 0000 0000 0000 = 0 So checker = checker | (1 <Val) = 0000 0000 0000 0000 0000 0000 0000 0000 | 0000 0000 0000 0000 0000 0000 0000 0001 = 0000 0000 0000 0000 0000 0000 0000 0001 = 1. The role of this step is the role of the dead father scan. is saved to 32-bit int checker, scan B is checker = 0000 0000 0000 0000 0000 0000 0000 0011, similarly, when scanning the second C, 0000 0000 0000 0000 0000 0000 0000 0111 0000 & 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 return false, a Boolean is enabled. [256] Only 32-bit space is used this time, reduced by 1/8