实用Python程序设计:第六章POJ代码

POJ网站

MOOC课程

上面两个链接可直达。

041:成绩排序

def f(x):
   return (-int(x[1]),x[0])
n=int(input())
ans=[]
for i in range(n):
   ans.append(input().split())
ans.sort(key = f)
for i in range(n):
   print(ans[i][0],ans[i][1])

042:图像模糊处理

import copy
n,m=map(int,input().split())
g=[]
for i in range(n):
   g.append(list(map(int,input().split())))
ans=copy.deepcopy(g)
for i in range(1,n-1):
   for j in range(1,m-1):
      ans[i][j]=round((g[i][j]+g[i-1][j]+g[i+1][j]+g[i][j-1]+g[i][j+1])/5)
for i in range(n) :
   for j in range(m):
      print(ans[i][j],end=" ")
   print("")

043:向量点积计算

n=int(input())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
sum =0
for i in range(n):
   sum+=a[i]*b[i]
print(sum)

044:病人排队

使用了lambda表达式,先按是否年龄小于60排序,小的为false<true,自然排后面了。

然后年龄大的在前,如果年龄大于60,排大小,小于60都为0不排序

n=int(input())
a=[]
for i in range (n):
   lis=list(map(str,input().split()))
   a.append(lis)
a.sort(key = lambda x : (int(x[1])<60,-int(x[1]) if int(x[1])>60 else 0))
for i in range(n):
   print(a[i][0])

045:矩阵乘法

n,m,k=map(int, input().split())
a=[]
for i in range(n):
   lis=list(map(int,input().split()))
   a.append((lis))
b=[]
for i in range(m):
   lis=list(map(int,input().split()))
   b.append((lis))
c=[[0 for j in range(k)]for i in range(n)]
for i in range(n):
   for j in range (k):
       for v in  range(m):
          c[i][j]+= a[i][v]*b[v][j];
       print(c[i][j],end=" ")
   print("")

046:回文子串

ans=[]
st=input()
for i in range(0,len(st)-1):
  for j in range(i+2,len(st)+1):
     a=st[i:j]
     b=a[::-1]
     if(a==b):
      ans.append(a)
ans.sort(key = lambda x : len(x))
for i in range(len(ans)):
    print(ans[i])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值