crack the code interiview C++

我们在求职的时候都会去看求职手册,其中CCIC就是一个常用的手册

这里我会放上我自的C++ 实现代码,给毕业生们参考

Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?

首先,你可以问面试官,构成字符串的字符集有多大?是ASCII字符,还是只是26个字母? 还是有用到的字符集,对于不同的情况,我们可能会有不同的解决方案。

如果我们假设字符集是ASCII字符,那么我们可以开一个大小为256的bool数组来表征每个字 符的出现。数组初始化为false,遍历一遍字符串中的字符,当bool数组对应位置的值为真, 表明该字符在之前已经出现过,即可得出该字符串中有重复字符。否则将该位置的bool数组 值置为true。代码如下:

bool isUnique1(string s)
{
    bool a[256];
    memset(a, 0, sizeof(a));/一定要初始化为0
    int len = s.length();
    for(int i=0; i < len; ++i)
    {
        int v = (int)s[i];
        if(a[v]) return false;
        a[v] = true;
    }
    return true;
}


 

posted @ 2016-08-27 14:14  shawn-KKT  阅读(295)  评论(0编辑  收藏  举报