本题将会给出
条报错信息,确切数字未知,您需要一直读入直到文件结尾;您也可以参考 牛客网在线判题系统使用帮助 获得更多的使用帮助。每条报错信息描述如下:
在一行上先输入一个长度为
的字符串
代表文件路径;随后,在同一行输入一个整数
代表行号。
文件路径的格式如题干所述,保证文件名不为空。
至多八行,每行先输出一个长度为
的字符串
,代表文件名;随后,在同一行输出错误行号、报错次数。
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))