判断字符字符串是否无重复
发布时间
阅读量:
阅读量
开发一个算法用于检测字符串中各字符是否重复。(仅允许采用基础的数据结构)
首先,请你向面试官询问:字符串由哪些字符组成?它是否仅包含ASCII字符?除了这些之外,请问还有其他更大的字符集吗?在不同的情境下,则可能采用不同的解决方案。
字符集是ASCII字符
法一
假设我们采用ASCII编码方案作为基础字符集,在此基础上我们可以建立一个大小为256位的布尔数组(boolean array),用于表示每个可能字符是否出现过。这个过程的具体步骤如下:首先将布尔数组初始化全部设为false状态;接着依次检查字符串中的每一个字符;如果发现对应的布尔数组的位置已经被设置为true,则说明该字符在此前已经出现过一次或更多次;反之,则将该位置上的布尔值从false设置为true。
bool isunique_2(const string &str)
{
bool a[256];
memset(a,0,sizeof(a));
int length=str.length();
for(int i=0;i<length;i++)
{
int index=(int)str[i];
if(a[index])
全部评论 (0)
还没有任何评论哟~
