1.1 Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structure?
1. 假定input只有‘a’~‘z’这26个字母,开个最naive的hash就可以了
class Solution {
public:
bool isUniqueChars2(string str){
vector<bool> flag(26, 0);
for (int i = 0; i < str.size(); i++) {
if(flag[str[i] - 'a'] == 1) return false;
flag[str[i] - 'a'] = 1;
}
return true;
}
};
2. 如果不止这26个字母的话,开256空间的hash,同样的做法
3.如果不能开空间的话,那就O(n^2)的搜吧
4.如果string可以动的话,可以先把string排序,O(nlogn)