首页 > 试题广场 >

首个重复字符

[编程题]首个重复字符
  • 热度指数:42620 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

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

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

测试样例:
"qywyer23tdd",11
返回:y
推荐
classFirstRepeat {
public:
    charfindFirstRepeat(string A, intn) {
        bool times[256] = {0};
        if(A.size()==0|| n==0)
            return0;
        for(inti=0;i<n;i++) {
            if(!times[A[i]])
                times[A[i]] = 1;
            else
                returnA[i];
        }
    }
};
利用hash的方式,把每个字符是否出现记录到一个数组中,初始化时都没出现,遍历字符串,将对应字符的位置置1,表示出现了,如果在某个字符位置上已经为1了,表示前面出现过该字符,那么这个字符就是第一个重复出现的字符,返回即可
编辑于 2015-11-26 00:48:53 回复(28)

问题信息

难度:
0条回答 50217浏览

热门推荐

通过挑战的用户

查看代码
首个重复字符