在一个字符串中找到第一个只出现一次的字符

来源:互联网 发布:mac如何强行关机 编辑:程序博客网 时间:2024/06/05 18:53

要想到用哈希表来解决问题

char FirstNotRepeatChar(char* pString){    if (!pString)        return '\0';    const int tableSize = 256;       int hashTable[tableSize] = { 0 }; //存入数组,并初始化为0           char* pHashKey = pString;    while (*(pHashKey) != '\0')        hashTable[*(pHashKey++)]++;//统计个数    while (*pString != '\0')    {        if (hashTable[*pString] == 1)            return *pString;        pString++;    }    return '\0';  //没有找到满足条件的字符,退出       }

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`const int N = 26;
int bit_map[N];

void findNoRepeat(char *src)
{
int pos;
char *str = src;
int i ,len = strlen(src);

//统计    for(i = 0 ; i < len ;i ++)        bit_map[str[i]-'a'] ++;    //从字符串开始遍历 其bit_map==1 那么就是结果    for(i = 0 ; i < len ; i ++)    {        if(bit_map[str[i]-'a'] == 1)        {            printf("%c",str[i]);            return ;        }    }    

} `

0 0
原创粉丝点击