【学长带练】Python杂题编程

文章介绍了三道Python编程题目,包括成绩分析(已解决)、图像模糊处理(已解决)和子串分值计算(遇到时间超限问题)。成绩分析和图像模糊使用了简单的算法实现并得到正确结果,而子串分值计算由于复杂度问题导致部分测试用例运行超时。
摘要由CSDN通过智能技术生成

目录

1、前言

2、成绩分析(AC)

3、图像模糊(AC)

4、子串分值(时间超限)


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杂题编程

祝好

​​​​​​​

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吕飞雨的头发不能秃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值