小刘的伴学笔记4|豆包MarsCode AI刷题

82 阅读2分钟

题目:超市里的货物架调整 一:题目解析 def solution(n: int, m: int, s: str, c: str) -> int: # 1. 统计每个商品在货架上的出现次数 from collections import Counter count = Counter(s)

# 2. 初始化一个变量来记录可以卖出的商品数量
sold = 0

# 3. 遍历顾客想要购买的商品种类
for item in c:
    # 4. 如果货架上有该商品,则卖出一件
    if count[item] > 0:
        sold += 1
        count[item] -= 1

# 5. 返回可以卖出的商品数量
return sold

if name == 'main': print(solution(3, 4, "abc", "abcd") == 3) print(solution(4, 2, "abbc", "bb") == 2) print(solution(5, 4, "bcdea", "abcd") == 4) 统计商品出现次数:使用 collections.Counter 来统计货架上每个商品的出现次数。 初始化卖出数量:使用一个变量 sold 来记录可以卖出的商品数量。 遍历顾客需求:遍历顾客想要购买的商品种类 c卖出商品:如果货架上有该商品(即 count[item] > 0),则卖出一件,并将该商品的计数减一。 返回结果:最后返回可以卖出的商品数量。 二、知识总结 好的,以下是一些与当前代码相关的知识点:

  1. collections.Counter
  • 用途collections.Counter 是一个用于计数的工具,可以方便地统计元素出现的次数。
  • 用法Counter(iterable) 会返回一个字典,其中键是元素,值是该元素在可迭代对象中出现的次数。
  1. 字典操作
  • 访问字典值:通过键访问字典中的值,例如 count[item]
  • 修改字典值:可以通过赋值操作修改字典中的值,例如 count[item] -= 1
  1. 循环遍历
  • for 循环:用于遍历可迭代对象(如字符串、列表等)。
  • 示例
    for item in "abcd":
        print(item)  # 输出: a, b, c, d
    
  1. 条件判断
  • if 语句:用于根据条件执行不同的代码块。
  • 示例
    if count[item] > 0:
        # 执行某些操作
    
  1. 函数定义与调用
  • 函数定义:使用 def 关键字定义函数,例如 def solution(n, m, s, c):
  • 函数调用:通过函数名和参数调用函数,例如 solution(3, 4, "abc", "abcd")
  1. 返回值
  • return 语句:用于从函数中返回值,例如 return sold
  1. 测试代码
  • 单元测试:在 if __name__ == '__main__': 块中编写测试代码,确保函数的行为符合预期。 三、学习计划 在空闲的时候抽出一至二小时学习基础概念,回顾基础; 每天抽出一些时间练习代码,同时提高打字速度和准确率; 不懂的时候及时询问老师或同学。 四、工具利用 C 语言代码编译器:专为零基础 C 语言编程爱好者打造,有免费教程和 C/C++题库,可利用碎片化时间学习.