解题思路:
注意事项:在本地跑出来的结果和测评的结果数据不一样,此题py数据处理有问题
参考代码:
t=int(input())
byte=0
for _ in range(t):
s=input()
if s.startswith('int '):
cnt=s.count(',')
if cnt==0:
byte+=4
else:
byte+=(cnt+1)*4
elif s.startswith('long '):
cnt=s.count(',')
if cnt==0:
byte+=8
else:
byte+=(cnt+1)*8
elif s.startswith('String '):
s=s.replace(';','')
b=s.replace('String ','')
c=list(b.split(','))
for x in c:
a=str(x)
idx1=a.find('=')+1
idx2=len(a)-1
byte+=idx2-idx1-1
elif s.startswith('int[] '):
s=s.replace(';','')
b=s.replace('int[] ','')
c=list(b.split(','))
for x in c:
a=str(x)
idx1=a.find('[')+1
idx2=a.find(']')
d=x[idx1:idx2]
num=int(''.join(d))
byte+=num*4
elif s.startswith('long[] '):
s=s.replace(';','')
b=s.replace('long[] ','')
c=list(b.split(','))
for x in c:
a=str(x)
idx1=a.find('[')+1
idx2=a.find(']')
d=x[idx1:idx2]
num=int(''.join(d))
byte+=num*8
gb=byte//1024**3
byte-=1024**3*gb
mb=byte//1024**2
byte-=1024**2*mb
kb=byte//1024
byte-=1024*kb
z=''
if gb>0:
z+=f'{gb}GB'
if mb>0:
z+=f'{mb}MB'
if kb>0:
z+=f'{kb}KB'
if byte>0:
z+=f'{byte}B'
print(z)
0.0分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复