public static void main(String[] args) {
char[] c="a2b".toCharArray();
boolean res=isUnique1(c);
System.out.println(res);
}
//判断串中每种字符是否只出现一次,时间复杂度O(N)
public static boolean isUnique1(char[] chas){
if(chas==null){
return true;
}
boolean[] map=new boolean[256];
for(int i=0;i<chas.length;i++){
if(map[chas[i]]){//map[48]为true,但又遇到map[48]
return false;//说明不止出现一次
}
map[chas[i]]=true;//出现过的字符都赋true,如map(48)=true
}
return true;
}
PS:
另一个要求好难….
保证额外空间复杂度为O(1)的前提下,实现时间复杂度尽量低的方法。