給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。
輸入格式:
輸入首先給出正整數n(≤10^5),為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。
輸出格式:
在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則輸出狂人中最小的號碼及其通話次數,並且附加給出並列狂人的人數。
輸入樣例:
4
13005711862 13588625832
13505711862 13088625832
13588625832 18087925832
15005713862 13588625832
輸出樣例:
13588625832 3
可以用排序可以用hash,因為在學習hash就照著**碼了一下,還是有很多細節的
#include#include#include#includeusing namespace std;
typedef struct lnode* list;
typedef char elem[12];
struct lnode;
typedef struct tblnode* hashtable;
struct tblnode;
int hash(int key,int p)
int nextprime(int n)
return p;
}hashtable createtable(int tablesize)
return h;
}list find(hashtable h,string key)
bool insert(hashtable h,elem key)
else
}void scanandoutput(hashtable h)
else if(ptr->count==maxcnt)
ptr=ptr->next;
} }pcnt>1?printf("%s %d %d",minphone,maxcnt,pcnt):printf("%s %d",minphone,maxcnt);
}int main()
scanandoutput(h);
return 0;
}
電話聊天狂人
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入首先給出正整數n 10 5 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人不唯一,則...
電話聊天狂人
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入格式 輸入首先給出正整數n 10 5 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。輸出格式 在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如...
電話聊天狂人
給定大量手機使用者聯絡歷史,找出其中通話次數最多的聊天狂人。輸入格式 輸入首先給出正整數n 為聯絡歷史條數。隨後n行,每行給出一條聯絡歷史。簡單起見,這裡只列出撥出方和接收方的11位數字構成的手機號碼,其中以空格分隔。輸出格式 在一行中給出聊天狂人的手機號碼及其通話次數,其間以空格分隔。如果這樣的人...