找出数组中第一个只出现一次的字符

来源:互联网 发布:华为交换机mac绑定 编辑:程序博客网 时间:2024/05/16 15:17

引言:

这个 程序的设计巧妙地利用了哈希思想,因为字符的特殊性,不必使用专门的哈希函数,可以用较为简单的数组代替。

具体实现:

//找出数组中第一个只出现一次的字符#include <iostream>using namespace std;int main(){int i;int pindu = 256;int Index = 23;        int haha = 0;int cnt = 0;int Count[256] = {0};int sequence[256] = {0};char str[] = "QWERTYUIQWER";for(i=0;str[i] != '\0' ; i++){Count[(int)(*(str+i))] ++;sequence[(int)(*(str+i))] = cnt ++;}for(i = 0;i < 256 ;i++){if(Count[i] == 1){                        haha++; if( sequence[i] < pindu){pindu = sequence[i];Index = i;}}}        if(haha == 0)        {             cout << "-1" << endl;             return -1;        }cout << "数组下标为" << pindu << endl;cout << "第一次只出现一次的字符为" << str[pindu] << endl;return 0;}