Menu
CoddyTech

买什么

本课属于 Coddy Ruby 学习旅程的“基础知识”单元。第 88 课,共 88 课。

challenge icon

挑战

简单

从输入中读取购物清单和商店库存,然后判断哪些商品可以买。

你会收到:

  1. 第一行:用逗号分隔的商品名称,表示你的购物清单
  2. 第二行:商店库存中的商品数量
  3. 后续各行:每行包含一个商品名称和数量,两者用逗号分隔

例如,库存输入 apples,5 表示商店有 5 个苹果。

对于购物清单中的每件商品,如果可以买,就输出商品名称,后跟 - Yes;如果不能买,就输出商品名称,后跟 - No。

商品符合以下条件时可以买:

  • 商品存在于商店库存中,并且
  • 商品数量大于 0

如果商品完全不在库存中,或者数量为 0,就输出 No。

例如,如果输入为:

apples,bread,milk
3
apples,5
bread,0
milk,3

输出应为:

apples - Yes
bread - No
milk - Yes

如果输入为:

eggs,butter,cheese,yogurt
2
eggs,12
cheese,0

输出应为:

eggs - Yes
butter - No
cheese - No
yogurt - No

如果输入为:

water
1
water,100

输出应为:

water - Yes

亲手试试

# 读取购物清单(商品之间用逗号分隔)
shopping_list = gets.chomp.split(',')

# 读取库存商品的数量
n = gets.to_i

# 读取商店库存
inventory = {}
n.times do
  line = gets.chomp.split(',')
  item_name = line[0]
  quantity = line[1].to_i
  inventory[item_name] = quantity
end

# TODO:在下方编写你的代码
# 检查购物清单中的每件商品是否可以买到
# 如果商品存在于 inventory 中,且 quantity > 0,就可以买到
# 为每件商品输出 "item_name - Yes" 或 "item_name - No"

基础知识中的所有课

自己练习: Ruby 在线编译器