2021python组A题

在这里插入图片描述

方法一,str(i).count("1")
import time
start = time.time()
#解题思路:拼数字的话1的卡片肯是用的最快的
num=0
for i in range(1,10000):
    num+=str(i).count("1") #计算字符串i中,字符1出现的次数。

    if 2021 == num:
        print(i)
        break
end = time.time()
print(end - start) #所用时间为2ms左右
方法二,通过创建一维10个元素的列表,判断列表中的每个数字那个累加到2021
import time
start = time.time()
arr = [0 for _ in range(10)] #[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
print(arr)
i = 1
while(i):
    string = str(i)
    # print(string)
    for j in string:
        arr[int(j)] += 1
    for j in range(9):
        if arr[j] == 2021:
            print(i)
            i = 0  #找到目标数字后令i=0,准备跳出循环
            break
    if i == 0: break #目的跳出整个while循环
    else:i += 1
end = time.time()
print(end - start) #0.017952919006347656

重点:学会使用str.count(“1”)方法。链接:https://blog.csdn.net/tcattime/category_8763002.html

string.count(sub_string, start, end)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值