<&书信电报;和|=在Java中
有一个问题是在Java中实现一个代码,我必须在不创建新数据结构的情况下查找字符串是否具有唯一字符 Java实现如下所示:<&书信电报;和|=在Java中,java,string,operators,unique,Java,String,Operators,Unique,有一个问题是在Java中实现一个代码,我必须在不创建新数据结构的情况下查找字符串是否具有唯一字符 Java实现如下所示: public static boolean isUniqueChars(String str) { int checker = 0; for (int i = 0; i < str.length(); ++i) { int val = str.charAt(i) - 'a'; if ((checker &
public static boolean isUniqueChars(String str) {
int checker = 0;
for (int i = 0; i < str.length(); ++i) {
int val = str.charAt(i) - 'a';
if ((checker & (1 << val)) > 0) return false;
checker |= (1 << val);
}
return true;
}
public静态布尔值isUniqueChars(String str){
int-checker=0;
对于(int i=0;i checker |=(11.对于此符号:>N
表示(如果您将其视为二进制数字字符串):
最右边的N
位被丢弃
根据需要复制最左边的位,以将结果填充到原始大小(32或64位),
例如
00000000000000000000000000101011 >> 2 -> 00000000000000000000000000001010
11111111111111111111111111010100 >> 2 -> 11111111111111111111111111110101
3.对于此符号:|=
它表示按位包含或和赋值运算符
例如:
checker |= (1<<val)
is same as checker |= (2^val)
is same as checker = checker | (2^val) (*)
与
1.对于此符号:>N
表示(如果您将其视为二进制数字字符串):
最右边的N
位被丢弃
根据需要复制最左边的位,以将结果填充到原始大小(32或64位),
例如
00000000000000000000000000101011 >> 2 -> 00000000000000000000000000001010
11111111111111111111111111010100 >> 2 -> 11111111111111111111111111110101
3.对于此符号:|=
它表示按位包含或和赋值运算符
例如:
checker |= (1<<val)
is same as checker |= (2^val)
is same as checker = checker | (2^val) (*)
与
使用ZiPROX的有益提示,(1)P>使用ZiPROX的有用提示:(1位位和位移位操作员:您是否考虑过位和位移位操作员:您是否考虑过咨询?他没有询问<代码> > /代码>,他问“代码>他没有询问<代码> > /代码>,他问了<代码>。
0 OR 0 = 0 , 1 OR 0 = 1
1 OR 1 = 1 , 0 OR 1 = 1
checker & (1<<val)
checker |= (1<<val)
checker = (checker | (1<<val))