題目描述:
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。
輸入格式:
輸入首先給出正整數n(≤105),為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。
輸出格式:
在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則輸出狂人中最小的號碼及其通話次數,並且附加給出並列狂人的人數。
輸入樣例:
4
13005711862 13588625832
13505711862 13088625832
13588625832 18087925832
15005713862 13588625832
輸出樣例:
13588625832 3
根據慕課上老師講的**打的
**如下:
#include #include #include #include using namespace std;
#define keylength 11 // 關鍵字串的最大長度
#define maxtablesize 1000000
typedef int index; // 雜湊位址型別
typedef struct lnode *ptrtolnode;
struct lnode
;typedef ptrtolnode position;
typedef ptrtolnode list;
typedef struct tblnode *hashtable;
struct tblnode // 雜湊表結點定義
;int hash(int key, int p)
// 返回大於n不超過maxtablesize的最小素數
int nextprime(int n)
return p;
}hashtable createtable(int tablesize)
return h;
}position find(hashtable h, elementtype key)
bool insert(hashtable h, elementtype key)
else
}void scanandoutput(hashtable h)
else if(ptr->count == maxcnt)
ptr = ptr->next;}}
printf("%s %d", minphone, maxcnt);
if(pcnt > 1)
printf(" %d", pcnt);
printf("\n");
}int main()
scanandoutput(h);
return 0;
}
電話聊天狂人
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入首先給出正整數n 10 5 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則...
電話聊天狂人
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入格式 輸入首先給出正整數n 10 5 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。輸出格式 在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如...
電話聊天狂人
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入格式 輸入首先給出正整數n 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。輸出格式 在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人...