51 cj bob zooyo tom 52 tom cj 53 tom zooyo cj 54 zooyo cj 55 bob 56 bob cj 57 zooyo bob tom cj 58 tom cj 59 tom 60 tom cj 数字代表日期,上面说了,真正日期可以用函数加工为UNIX时间,简明起见,就用连续数字代替。 根据上述要求,结果应该是 55-57 bob 2 51-54 cj 3 56-58 cj 2 51-53 tom 2 57-60 tom 3 ########## summary ############## bob 2 cj 5 tom 5
for(i in c)if(c[i]>2){print k"-"end,i,c[i]-1;m[j]+=c[j]-1}
print "########## summary ##############"
for(i in m)print i,m[i]
}' user
思路,遍历日期范围和user,END部分循环user/date,假如出现了,自加,记录首次出现的日期,没出现赋值为0, 接下来如不继续出现,判断是否大于2,是,打印起始日期,并且自动清0,m[j]+=这个是最后做summary用的;小于2,赋值为0;数组d是为了实现记录该用户第一次出现的日期。
最后for (i in c)是最后一天还出现的情况,依然要判断;然后统计给出summary.