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

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

给定一个字符串(不一定全为字母)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];                
            }

        }
    }
};


你可能感兴趣的:(LeetCode)