题目:编写一个算法程序frequency,统计在一个输入字符串中各个不同字符出现的频度。算法返回两个数组:A[]记录字符串中有多少种不同的字符,C[]记录没一种字符的出现次数。此外,还要返回不同字符数。
解答:构造hash表.
#include <iostream>#define MaxElement 255#define Len sizeof(str)-1using namespace std;int main(){char str[]="abcd12121abcwewa";unsigned int p[MaxElement]={0};char A[Len+1];int C[Len];int i=0;int count=0;//不同的字符数总数for(i=0;i<Len;i++)*(p+*(str+i)%MaxElement)=*(p+*(str+i)%MaxElement)+1;for(i=0;i<MaxElement;i++){if(*(p+i)>=1){
*(A+count)=(char) i;*(C+count)=*(p+i);count++;}}*(A+count)='/0';for(i=0;i<count;i++)cout<<*(A+i)<<":"<<*(C+i)<<endl;}