目录
1、前言
本次的学长带练,课程的答案还没出来,不过这次的三题思路还是容易的,下面是吕同学写的代码,前两题已经AC,第三题有 6/10 的样例时间超限,调试了一个小时左右没成功先战略性放弃,日后等答案出来了再做调整。
2、成绩分析(AC)
这一题比较简单,直接读入数据然后调用函数max、min获取最大最小值即可,另外平均值要注意输出两位小数。
n=int(input())
a=[]
sum=0
for _ in range(n):
tmp=int(input())
sum+=tmp
a.append(tmp)
print(max(a))
print(min(a))
print("{:.2f}".format(sum/n))
3、图像模糊(AC)
n,m=map(int,input().split())
nums=[[0]*(m+4) for _ in range(n+4)]
ans=[[0]*(m+4) for _ in range(n+4)]
for i in range(1,n+1):
num=list(map(int,input().split()))
for j in range(1,m+1):
nums[i][j]=num[j-1]
sum=0
for i in range(1,n+1):
for j in range(1,m+1):
sum=0
sum+=nums[i-1][j-1]
sum+=nums[i-1][j]
sum+=nums[i-1][j+1]
sum+=nums[i][j-1]
sum+=nums[i][j]
sum+=nums[i][j+1]
sum+=nums[i+1][j-1]
sum+=nums[i+1][j]
sum+=nums[i+1][j+1]
if i==1 and j==1:
avg=sum//4
elif i==1 and j==m:
avg=sum//4
elif i==n and j==1:
avg=sum//4
elif i==n and j==m:
avg=sum//4
elif i==1:
avg=sum//6
elif i==n:
avg=sum//6
elif j==1:
avg=sum//6
elif j==m:
avg=sum//6
else:
avg=sum//9
ans[i][j]+=avg
for i in range(1,n+1):
for j in range(1,m+1):
if i==n and j==m:
print(ans[i][j],end='')
else:
print(ans[i][j],end=' ')
print("")
4、子串分值(时间超限)
s=input()
n=len(s)
#print(s[1:2])
#strs=[]
ans=0
for i in range(n):
for j in range(i+1,n+1):
#if s[i:j] not in strs:
#strs.append(s[i:j])
tmp=s[i:j]
for k in range(j-i):
if tmp[k]!='*':
if tmp.count(tmp[k])==1:
ans+=1
else:
tmp=tmp.replace('tmp[k]','*')
print(ans)
以上,Python杂题编程
祝好