Data Structures - Arrays and Strings:
Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?
My Original Solution:
private static boolean uniqueStrByHushTable(String str) {
boolean flag = false;
char[] chars = str.toCharArray();
HashSet<Character> hashSet = new HashSet<Character>();
for(int i = 0; i < chars.length; i ++) {
hashSet.add(chars[i]);
}
if(hashSet.size()==chars.length) {
flag = true;
}
return flag;
}
Book original solution:
private static boolean uniqueStrByASCII(String str) {
boolean[] char_val = new boolean[256];
for (int i = 0; i < str.length(); i++) {
int val = str.charAt(i);
if (char_val[val]) {
return false;
}
char_val[val] = true;
}
return true;
}
Book original solution 2:
private static boolean isUniqueStr(String str) {
int checker = 0;
for (int i = 0; i < str.length(); i++) {
int val = str.charAt(i) - 'a';
if ((checker & (i << val)) > 0) {
return false;
}
checker |= (1 << val);
}
return true;
}
Have no idea about how to check unique string without any data structure.