解题思路:
注意事项:在本地跑出来的结果和测评的结果数据不一样,此题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 人评分