Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?
比较简单,有如下实现方法:
1.最简单的双重循环
2.bool[256] 设置标记
3.space O(1): 位操作
4.先快排,然后遍历找重复
bool isUnique1(string s)
{
bool occur[256]={false};
for(int i=0;i<s.size();i++)
{
if(!occur[s[i]])
occur[s[i]]=true;
else
return false;
}
return true;
}
bool isUnique2(string s)
{
int checker = 0;
for(int i=0;i<s.size();i++)
{
int val = s[i];
if((checker & (1<<val)) > 0)
return false;
else
checker |=1<<val;
}
return true;
}