最近面試碰到的乙個題目,業餘時間用python實現的。
拿到資料,先用sort 命令排序,也可再進一步去重複
sort -k 1,2 data.txt |uniq > data.new
1#-*- coding:utf-8 -*-23
#第乙個欄位是使用者uid,第二個欄位是商品tid,統計每個商品的使用者購買數量
4import
sys5
6 pre_tid=""
7 pre_uid=""
8 sum=0
9for line in
sys.stdin:
10 fields = line.strip().split('
\t') #
注意這裡要加上strip()去除"\n"
11 uid =fields[0]
12 tid = fields[1]
13if tid!=pre_tid:
14if sum!=0: #
讀取第一行時,不要列印
15print pre_tid+"
\t"+str(sum) #
類別改變就把上乙個類別輸出
16 pre_uid=""
17 pre_tid =tid
18 sum=1 #
初始化計數器
19else:20
if(uid==pre_uid): #
如果有兩條完全重複的資料不計入
21continue
22else
:23 sum=sum+1
24 pre_uid=uid
2526
print pre_tid+"
\t"+str(sum)#
列印最後乙個類別
乙個小題目
看到一道題目,自己嘗試了一下 編寫乙個在1,2,9 順序不能變 數字之間插入 或 或什麼都不插入,使得計算結果總是100的程式,並輸出所有的可能性。例如 1 2 34 5 67 8 9 100.首先要考慮所有的可能性,每兩個數字間有3種可能,一共有3的8次方種可能。這樣就能通過遍歷實現。void v...
原型的乙個小題目
題目要求 建立乙個shape物件,該物件有乙個type屬性和gettype 方法 定義乙個原型為shape的 建構函式,用 建立的物件應有三個物件屬性 a b c,分別用於表示三角形的三條邊 在物件原型中新增乙個名為getperimeter 的新方法,用下面的 來進行測試 var t new 1,2...
乙個C 小題目引出的問題
題目 第一眼肯定是覺得小意思,隨便寫個 int add int a,int b 這種寫法有很明顯的缺陷,引數傳進來會複製乙份,然而我們可以優化一下,例如說指標?int add int a,int b 在c 有更好的方法,例如引用,呼叫時就不需要書寫 號了 int add int a,int b 有可...