class Solution {
public boolean isUnique(String astr) {
char[] str=astr.toCharArray();
boolean b=false;
for(int i=0;i<str.length;i++){
for(int j=1;j<str.length;j++){
if(str[i]==str[j]){
System.out.println("i"+i+"equal j:"+j);
if(i!=j){b=false;}
else{b=true;}
break;
}
else {
System.out.println("i"+i+"not equal j:"+j);
b=true;
}
}
}
return b;
}
}
问题:输入字符“LeetCode”,“abc”都可以得到正确结果,输入字符“abca”总是得不到正确结果。。。
大佬做法:
public class IsUniqueChars {
public 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;
}
}