Python 1-05 条件与循环语句测试

发布于:2023-09-16 ⋅ 阅读:(57) ⋅ 点赞:(0)

1518. 换酒问题

知识点: while, /, %

class Solution:
    def numWaterBottles(self, numBottles: int, numExchange: int) -> int:
        res = rem = numBottles # 全部喝完,rem 为空瓶数
        while rem >= numExchange:
            numBottles, rem = divmod(rem, numExchange) # 可换酒 numBottles 瓶,剩余 rem 个空瓶。
            res += numBottles # 全部喝完
            rem += numBottles # + 空瓶           
        return res

基础知识

整除

d, r = divmod(a, b) <=> d = a // b, r = a % b
// 整除
/ 除,结果是浮点数。

while 循环

while 条件:
	# 循环体
else:
	# break 终止循环时不执行

divmod() 内置函数

divmod(a, b) 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。

第五课

2057. 值相等的最小索引

class Solution:
    def smallestEqual(self, nums: List[int]) -> int:
        for i, x in enumerate(nums):
            if i % 10 == x: return i
        return -1

412. Fizz Buzz

class Solution:
    def fizzBuzz(self, n: int) -> List[str]:
        res = [''] * 列表包含 n # n 个 空串
        # res = []
        for i in range(1, n + 1):
            if i % 15 == 0: x = "FizzBuzz" # 先处理 15 的倍数
            elif i % 3 == 0: x = "Fizz"
            elif i % 5 == 0: x = "Buzz"
            else: x = str(i) # 转换成字符串
            res[i - 1] = x
            # res.append(x)
        return res

        # return ['Fizz'[i%3*4:]+"Buzz"[i%5*4:] or str(i) for i in range(1, n+1)]
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到