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