本题将会给出
条报错信息,确切数字未知,您需要一直读入直到文件结尾;您也可以参考 牛客网在线判题系统使用帮助 获得更多的使用帮助。每条报错信息描述如下:
在一行上先输入一个长度为
的字符串
代表文件路径;随后,在同一行输入一个整数
代表行号。
文件路径的格式如题干所述,保证文件名不为空。
至多八行,每行先输出一个长度为
的字符串
,代表文件名;随后,在同一行输出错误行号、报错次数。
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
import sys inps = {} for line in sys.stdin: l = line.strip('\n') if len(l) == 0: continue p, error_type = l.split(' ') file_name = p.split("\\")[-1][-16:] rec = f'{file_name} {error_type}' if rec in inps: inps[rec] += 1 else: inps[rec] = 1 oups = [] for k, v in inps.items(): oups.append(f'{k} {v}') for oup in oups[-8:]: print(oup)
import sys e = {} for line in sys.stdin: x, y = line.split() # 注意:为了查找反斜杠,需要使用双反斜杠 '\\' pos = x.rfind('\\') if len(x[pos+1:]) <= 16: s = x[pos+1:] else: s = x[-16:] key = s + ' ' + y if key not in e: e[key] = 1 else: e[key] += 1 for key in list(e.keys())[-8:]: print(f'{key} {e[key]}')
import sys res = {} while True: try: line = sys.stdin.readline().strip() if not line: res = list(res.items())[-8:] for i in res: print(f"{i[0][0]} {i[0][1]} {i[1]}") break line = line.split() name, row = line name = name.split('\\')[-1][-16:] if (name, row) not in res: res[(name, row)] = 1 else: res[(name, row)] += 1 except: break
import sys erro_dict, erro_list = {}, [] for line in sys.stdin: route, row = line.split() name = route.split('\\')[-1][-16:] if name + row not in erro_dict: erro_dict[name + row] = 1 erro_list.append((name, row)) else: erro_dict[name + row] += 1 for i in erro_list[-8:]: print(i[0], i[1], erro_dict[i[0] + i[1]])
import sys inPut=[] res=[] for line in sys.stdin: if not line.strip() in inPut: inPut.append(line.strip()) #print(inPut) times=[0]*len(inPut) for i in range(len(inPut)): last=inPut[i].split('\\')[-1].split(' ') row=last[1] if len(last[0])<=16: name=last[0] else:name=last[0][len(last[0])-16:len(last[0])] record=str(name)+' '+str(row) if not record in res: res.append(record) times[res.index(record)]=1 else: times[res.index(record)]+=1 #print(res) if len(res)<=8: for i in range(len(res)): print(res[i]+' '+str(times[i])) else: for i in range(len(res)-8,len(res)): print(res[i]+' '+str(times[i]))
import sys paths = [] paths_num = {} for line in sys.stdin: path, row_num = line.split() path = path.split("\\")[-1][-16:] if path + ' ' + row_num not in paths_num.keys(): paths.append(path + ' ' + row_num) paths_num[path + ' ' + row_num] = 1 else: paths_num[path + ' ' + row_num] += 1 if len(paths) > 8: start = len(paths) - 8 else: start = 0 for i in range(start, len(paths)): print(paths[i] + ' ' + str(paths_num[paths[i]]))
files = {} out = [] while True: try: s = input() path, line = s.split(' ') filename = path.split('\\')[-1][-16:] key = f'{filename} {line}' files.setdefault(key, 0) files[key] += 1 # 记录最后输出的八个文件 if key not in out: out.append(key) except: break for k in out[-8:]: print(k, files[k])
import sys def returnsls(strs: str): tls = strs.split(" ") # 拆分一行输入为列表,两个元素 tstrs = tls[0].split("\\") if len(tstrs[-1]) <= 16: tls[0] = tstrs[-1] else: tls[0] = tstrs[-1][len(tstrs[-1]) - 16 :] tls.append("1") return tls als = [] # 最终统计完成的列表 try: while True: ifappend = True strs = input() if not strs: break sls = returnsls(strs) if len(als) == 0: # 总表为空时,直接append第一个输入 als.append(sls) elif len(als) != 0: # 总表不为空时,需要进行判断 for i in als: # 对于总表的每一个列表元素循环判断 if ( i[0] == sls[0] and i[1] == sls[1] ): # 当记录相同时,conut+1,append标签置为false!!,退出循环 i[2] = str(int(i[2]) + 1) ifappend = False break if ifappend: als.append(sls) except: pass if len(als) <= 8: for i in als: print(f"{i[0]} {i[1]} {i[2]}") else: for i in range(len(als) - 8, len(als)): print(f"{als[i][0]} {als[i][1]} {als[i][2]}")
import sys l1=[] for line in sys.stdin: a = line.split() a[0]=a[0].split('\\')[-1][-16:] l1.append(a[0]+' '+a[1]) l2=[] for i in l1: if [i,l1.count(i)] not in l2: l2.append([i,l1.count(i)]) l2=[x+' '+str(y) for x,y in l2[-8:]] for i in l2: print(i)
addreslist = [] while True: try: addreslist.append(input()) except: break outputlist = [] errorunique = {} for error in addreslist: address = error.split()[0].split('\\')[-1][-16:] row = error.split()[1] if (address,row) in errorunique: errorunique[(address,row)] += 1 else: errorunique[(address,row)] = 1 outputlist.append((address,row)) for output in outputlist[-8:]: for item in output: print(item,end=' ') print(errorunique[output])