已知某個檔案內包含一些**號碼,每個號碼為 8 位數字,統計不同號碼的個數。
這道題本質還是求解資料重複的問題,對於這類問題,一般首先考慮位圖法。
對於本題,8 位**號碼可以表示的號碼個數為 108 個,即 1 億個。我們每個號碼用乙個 bit 來表示,則總共需要 1 億個 bit,記憶體占用約 100m。
思路如下:
申請乙個位圖陣列,長度為 1 億,初始化為 0。然後遍歷所有**號碼,把號碼對應的點陣圖中的位置置為 1。遍歷完成後,如果 bit 為 1,則表示這個**號碼在檔案中存在,否則不存在。bit 值為 1 的數量即為 不同**號碼的個數。
求解資料重複問題,記得考慮位圖法。
電話號碼的寫法
想必地球人都知道,區號就是國內各個省份的固定 都有自己的地區號碼,比如上海是021,從外地撥上海的固定 前一定得加上地區號才能打通,當然,手機就不受此限制,可以直接撥11位號碼。但是未必所有人都知道各個國家也有自己的國際區號,比如中國的國際區號是86,各位在應聘跨國公司時寫 號碼可別忘了務必寫上國際...
最常見的電話號碼
有個老外找到了答案,這個號碼就是2147483647。事情是這樣的,我們知道,在計算機中,整數往往用4個位元組儲存。4個位元組就是32位,由於最高位是符號位,那麼只剩下31位,也就是說,這種方式所能儲存的最大整數是2的31次方 1 因為要去掉零 即2147483647。這個老外突然意識到,這是乙個1...
方便記憶的電話號碼
總時間限制 2000ms 記憶體限制 65536kb 描述 英文本母 除q和z外 和 號碼存在著對應關係,如下所示 a,b,c 2 d,e,f 3 g,h,i 4 j,k,l 5 m,n,o 6 p,r,s 7 t,u,v 8 w,x,y 9 標準的 號碼格式是 x,其中x表示0 9中的乙個數字。有...