去哪网2015面试题:[编程题] 首个重复字符

来源:互联网 发布:知乎 正楷 字帖推荐 编辑:程序博客网 时间:2024/05/18 15:52

对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。

给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。

测试样例:
"qywyer23tdd",11

返回:y

很明显的是要用hash来做。要求第一个重复出现的次数,顺序遍历,若有 >=2 则直接输出。

class FirstRepeat {public:    char findFirstRepeat(string A, int n) {        // write code here        if(n >= 2 && A.size() == n){            char hash[256];            for(int i = 0;i < 256;++i)                hash[i] = 0;            for(int i = 0;i < n;++i){                ++hash[A[i]];                if(hash[A[i]] >= 2)                    return A[i];                            }        }    }};


0 0