本题将会给出
条报错信息,确切数字未知,您需要一直读入直到文件结尾;您也可以参考 牛客网在线判题系统使用帮助 获得更多的使用帮助。每条报错信息描述如下:
在一行上先输入一个长度为
的字符串
代表文件路径;随后,在同一行输入一个整数
代表行号。
文件路径的格式如题干所述,保证文件名不为空。
至多八行,每行先输出一个长度为
的字符串
,代表文件名;随后,在同一行输出错误行号、报错次数。
D:\oblemsinnowcoder 12 D:\nowcoderproblemsinnowcoder 12 D:\nowcoder\problemsinnowcoder 13 D:\oj\problemsinnowcoder 13
oblemsinnowcoder 12 2 oblemsinnowcoder 13 2
在这个样例中,这四条报错信息去除文件路径后,由于文件名长度均超过
个字符,故我们只保留最后
个字符,得到的文件名均为
。所以,我们将它们看作同一个文件,按照报错行号划分即可。
A:\aa 1 B:\b 1 C:\c 1 D:\d 1 E:\e 1 F:\f 1 G:\g 1 H:\h 1 I:\i 1 A:\aa 1
b 1 1 c 1 1 d 1 1 e 1 1 f 1 1 g 1 1 h 1 1 i 1 1
在这个样例中,第一、十条报错信息完全相同,但是我们以其第一次出现的顺序为准,在输出最后
条记录时,不包含这一报错。
D:\zwtymj\xccb\ljj\cqzlyaszjvlsjmkwoqijggmybr 645 E:\je\rzuwnjvnuz 633 C:\km\tgjwpb\gy\atl 637 F:\weioj\hadd\connsh\rwyfvzsopsuiqjnr 647 E:\ns\mfwj\wqkoki\eez 648 D:\cfmwafhhgeyawnool 649 E:\czt\opwip\osnll\c 637 G:\nt\f 633 F:\fop\ywzqaop 631 F:\yay\jc\ywzqaop 631 D:\zwtymj\xccb\ljj\cqzlyaszjvlsjmkwoqijggmybr 645
rzuwnjvnuz 633 1 atl 637 1 rwyfvzsopsuiqjnr 647 1 eez 648 1 fmwafhhgeyawnool 649 1 c 637 1 f 633 1 ywzqaop 631 2
d = {} while 1: try: x,y = input().split(' ') x1 = x.split('\\')[-1][-16:] key = x1 +' '+ y d[key]= d.get(key,0) + 1 except: break for key in list(d.keys())[-8:]: print(key,d[key])
in_errors = [] out_errors = [] while True: try: error = input() in_errors.append(error) except: break for i in in_errors: info = i.split() pos = info[1] path = info[0] path1 = path.split('\\') l = len(path1) name = path1[l-1] l2 = len(name) if l2 > 16: name = name[l2-16:] out_info = [name,pos,1] if len(out_errors) == 0: out_errors.append(out_info) else: f1 = 0 for i2 in out_errors: if i2[0] == out_info[0] and i2[1] == out_info[1]: i2[2] += 1 f1 = 1 break if f1 == 0: out_errors.append(out_info) num = len(out_errors) print(out_errors) a = num - 8 if num <= 8: for b in out_errors: print(str(b[0])+' '+str(b[1])+' '+str(b[2])) else: while a < num: f3 = a a += 1 c = out_errors[f3] print(str(c[0])+' '+str(c[1])+' '+str(c[2]))
import sys def main(): map1 = {} # 双向队列,用于记录出入的顺序 recoder = [] for line in sys.stdin: a = line.split() list1 = a[0].split('\\') # 取后16位 if len(list1[-1]) > 16: list1[-1] = list1[-1][-16:] fileName = list1[-1] +' '+ a[1] if fileName in map1: map1[fileName] += 1 else: recoder.append(fileName) map1[fileName] = 1 if len(recoder) > 8: remove = recoder.pop(0) map1[remove] = 0 # 统计最后的8个结果: for item in recoder: print( item + ' '+ str(map1[item])) if __name__ == '__main__': main()
import sys import json def error_record(): errors_line_dict_list = list() errors_count = dict() for line in sys.stdin: file_name, code_line = line.split() file_name = file_name.split('\\')[-1] if len(file_name) > 16: file_name = file_name[-16:] tmp_dic = {file_name: code_line} dump_tmp_dic = json.dumps(tmp_dic) if dump_tmp_dic not in errors_line_dict_list: errors_count[dump_tmp_dic] = 1 else: errors_count[dump_tmp_dic] += 1 continue errors_line_dict_list.append(dump_tmp_dic) if len(errors_line_dict_list) > 8: errors_line_dict_list = errors_line_dict_list[-8:] for dump_tmp_dic in errors_line_dict_list: tmp_dic = json.loads(dump_tmp_dic) file_name, line_num = list(tmp_dic.items())[0] print(f'{file_name} {line_num} {errors_count.get(dump_tmp_dic)}') def main(): error_record() if __name__ == '__main__': main()
import sys def process_string(r_list): row = r_list[-1] record = r_list[0].split('\\')[-1] record = record[-16:] return [record, row] err_list = [] for line in sys.stdin: a = line.split() err_list.append(process_string(a)) recorded_list = {} for item in err_list: key_i = item[0]+'-'+item[1] if key_i not in recorded_list.keys(): recorded_list[key_i] = 1 else: recorded_list[key_i] += 1 key_l = list(recorded_list.keys()) if len(key_l) >= 8: for i in range(8): err = key_l[i-8].split('-') print(err[0], err[1], recorded_list[key_l[i-8]]) else: for i in range(len(key_l)): err = key_l[i].split('-') print(err[0], err[1], recorded_list[key_l[i]])
import sys res=[] for line in sys.stdin: line = line.strip().split('\\') ans=line[-1].split(' ') if len(ans[0])>16: res.append(ans[0][-16:]+' '+ans[1]) else: res.append(ans[0]+' '+ans[1]) hash_table={} for i in res: if i not in hash_table: hash_table[i]=1 else: hash_table[i]+=1 if len(hash_table)>8: out=list(hash_table.items()) for i in range(-8,0): print(out[i][0],out[i][1]) if len(hash_table)<=8: out=list(hash_table.items()) for i in range(len(out)): print(out[i][0],out[i][1])
a = [] aa = [] while True: try: b, c = input().split(' ') b = b.split('\\')[-1] if len(b) > 16: b = b[-16:] d = [b, c] if d not in a: a.append(d) aa.append(1) else: aa[a.index(d)] += 1 except: break for i in range(0 if len(a) <= 8 else len(a)-8, len(a)): print('{} {} {}'.format(a[i][0], a[i][1], aa[i]))
err = [] while True: try: err.append(input()) except: break from collections import Counter count = Counter() for i in range(len(err)): name = err[i].split()[0].split('\\')[-1][-16:] num = err[i].split()[1] tmp = name+' '+num count[tmp] += 1 n = 0 for i,j in count.items(): if n >= len(count) - 8: print('{} {}'.format(i,j)) n+=1
rawstrs = [] mid_dict = dict() output_lst = [] while True: try: mid_raw = input() str_all = mid_raw.split(' ')[0] str_num = mid_raw.split(' ')[1] if mid_raw not in rawstrs: rawstrs.append(mid_raw) key = str_all.split('\\')[-1][-16:] + ' ' + str_num if mid_dict.get(key, 'notfound') != 'notfound': mid_dict[key] += 1 else: mid_dict[key] = 1 except: break mid_keys_lst = list(mid_dict.keys())[-8:] for key, value in mid_dict.items(): if key in mid_keys_lst: print('{} {}'.format(key,value))