本文共 578 字,大约阅读时间需要 1 分钟。
Hash去除重复字符串:
#include#include #include #include using namespace std; #define MAX 10000#define MOD 9991char * Hash[MAX][20];int len[MAX];int _hash(char *str){ register int hash=0; while(int ch=(int)*str++){ //hash=hash*31+ch; hash=hash<<7+hash<<1+hash+ch; hash%=MOD; } return hash%MOD;}void Test()//测试程序{ //freopen("C:\\in.txt","r",stdin); FILE *fp1=fopen("C:\\a.txt","r"); FILE *fp2=fopen("C:\\b.txt","w"); char str[20]; memset(len,0,sizeof(len)); while(~fscanf(fp1,"%s",str)){ int pos=_hash(str); bool flag=false; for(int i=0;i
转载地址:http://fbvvi.baihongyu.com/