刷题总结篇

        总结前面阶段的刷题知识点

1.GCD+LCM

def gcd(a,b):
    if b ==0:return a
    else: return gcd(b,a%b)
from math import *
def lcm(x,y):  return x//gcd(x,y)*y

2.进位处理

e.x

n = int(input())
x = [0] + list(map(int, list(input())))[::-1]
y = [0] + list(map(int, list(input())))[::-1]
# dp[i][j]表示i~n个数已经相等,j存第i个数相等的方式
dp  = [[0] * 3 for i in range(n + 1)]
dp[1][0] = abs(x[1] - y[1]) # 不进退位
dp[1][1] = 10 - x[1] + y[1] # 进位
dp[1][2] = 10 - y[1] + x[1] # 退位
for i in range(2, n + 1):
    dp[i][0] = min(dp[i - 1][0] + abs(x[i] - y[i]), dp[i - 1][1] + abs(x[i] - y[i] + 1), dp[i - 1][2] + abs(x[i] - y[i] - 1))
    dp[i][1] = min(dp[i - 1][0] + 10 - x[i] + y[i], dp[i - 1][1] + 10 - (x[i] + 1) + y[i], dp[i - 1][2] + 10 - (x[i] - 1) + y[i])
    dp[i][2] = min(dp[i - 1][0] + 10 - y[i] + x[i], dp[i - 1][1] + 10 - y[i] + (x[i] + 1), dp[i - 1][2] + 10 - y[i] + (x[i] - 1))
print(min(dp[n][0], dp[n][1], dp[n][2]))

3.分数表示

4.datetime模块

Python datetime模块详解、示例-CSDN博客

5.占位符

#整数占位符
>>> a = "好好%d好" % (100)
>>> print(a)
好好100好
 
#%4d 占4位,原字符串默认居右
>>> a = "好好%4d好" % (100)
>>> print(a)
好好 100好
 
#%-4d 占4位,原字符串默认居左
>>> c = "好好%-4d好" % (100)
>>> print(c)
好好100 好
 
#%04d 占4位,0补位
>>> d = "好好%04d好" % (100)
>>> print(d)
好好0100好

 6.输出小数点表示

print("{:.2f}".format(sum(lis)/n))

7.字符串处理

.isdigit()可用于判断字符中每个小字是否为数字 

8.itertools库accumulate模块

>>> a=[1,2,3,4,5]
>>> b=accumulate(a)  #默认是累加
>>> b   #这里返回的是一个可迭代对象
<itertools.accumulate object at 0x7f3e5c2f4e48>
>>> list(b)   #强制转化
[1, 3, 6, 10, 15]
>>> 
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值