码迷,mamicode.com
首页 > 编程语言 > 详细

(算法)字符串中首先出现两次的字符

时间:2015-04-28 15:45:40      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

题目:

给定一个字符串,请写一段代码找出这个字符串中首先出现两次的那个字符。 例如字符串为"qywyer23tdd",输出为y。

思路:

1、从头到尾遍历字符串str,如果str[i]为首先出现两次的字符,则满足的条件是str[i]==str[j](0<=j<i);

2、遍历字符串时,通过类似hash数组来统计字符出现的次数,由于char字符有256个,为0-255,所以需创建一个256大小的数组,即int A[256].

代码:

char firstCharAppearTwice_1(string str){
    for(unsigned int i=0;i<str.length();i++){
        for(unsigned int j=0;j<i;j++){
            if(str[i]==str[j])
                return str[i];
        }
    }
    return  ;
}
char firstCharAppearTwice_2(string str){
    int hashTable[256];
    for(int i=0;i<256;i++)
        hashTable[i]=0;

    for(unsigned int i=0;i<str.length();i++){
        hashTable[str[i]-0]++;
        if(hashTable[str[i]-0]==2)
            return str[i];
    }

    return  ;
}

(算法)字符串中首先出现两次的字符

标签:

原文地址:http://www.cnblogs.com/AndyJee/p/4462758.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!