sfqxx 发表于 2023-7-1 21:21:47

求助

Takahashi在一家寿司餐厅吃了N盘寿司。第i盘寿司的颜色用字符串C_i表示。

每个寿司的价格与盘子的颜色对应。对于每个i=1到M,颜色为字符串D_i的盘子上的寿司价值为P_i日元一盘。如果颜色与D_1到D_M中的任何一个不匹配,则价值为P_0日元一盘。

请找出Takahashi所吃寿司的总价格。

约束条件:
1 <= N, M <= 100
C_i和D_i是由小写英文字母组成的字符串,长度介于1和20之间(含边界)。
D_1到D_M互不相同。
1 <= P_i <= 10000
N、M和P_i为整数。

输入格式:
N M
C_1 ... C_N
D_1 ... D_M
P_0 P_1 ... P_M

输出格式:
输出一个整数作为答案。

示例输入1:
3 2
red green blue
blue red
800 1600 2800
示例输出1:
5200

示例输入2:
3 2
code queen atcoder
king queen
10 1 1
示例输出2:
21

我的代码:N, M = map(int, input().split())
plates = list(map(str,input().split()))
colors = list(map(str,input().split()))
money = list(map(int, input().split()))

money2 = 0
D = 0
for i in range(N):
try:
    A = plates.index(colors)
    money2+=money
except:
    money2+=money
D+=1

print(money2)

为什么过不了

isdkz 发表于 2023-7-1 21:22:15

你的代码有一点小错误。在循环中,你使用 plates.index(colors) 来查找颜色对应的盘子的索引,但是这个方法只会返回第一个匹配的索引,而不是根据颜色匹配。因此,你的代码可能会出现错误的结果。

为了解决这个问题,你可以使用字典来存储颜色和价格的对应关系。然后,遍历每个寿司盘子的颜色,查找对应的价格并累加到总价格上。

下面是修改后的代码:

N, M = map(int, input().split())
plates = list(map(str, input().split()))
colors = list(map(str, input().split()))
money = list(map(int, input().split()))

price_dict = {}# 用字典存储颜色和价格的对应关系
for i in range(M):
    price_dict] = money# 第一个价格是P_0,所以从money开始

total_price = 0
for i in range(N):
    color = plates[ i]
    if color in price_dict:
      total_price += price_dict
    else:
      total_price += money# 如果颜色不匹配,使用P_0的价格

print(total_price)


这样修改后,你的代码应该可以通过测试了。希望能帮到你!

isdkz 发表于 2023-7-1 21:38:20

sfqxx 发表于 2023-7-1 21:25
运行报错

你的代码逻辑有误。你应该是对于每一盘寿司,查找它的颜色是否在D_1到D_M中,如果在,就加上对应的价格,如果不在,就加上P_0。但是你的代码中,你是在寿司的颜色列表中查找D_1到D_M的颜色,这是错误的。

你应该这样修改你的代码:


N, M = map(int, input().split())
plates = list(map(str,input().split()))
colors = list(map(str,input().split()))
money = list(map(int, input().split()))


total = 0
for i in range(N):
    if plates in colors:
      total += money)+1]
    else:
      total += money


print(total)

sfqxx 发表于 2023-7-1 21:38:24

isdkz 发表于 2023-7-1 21:22
你的代码有一点小错误。在循环中,你使用 plates.index(colors) 来查找颜色对应的盘子的索引,但是这个 ...

成功

isdkz 发表于 2023-7-1 21:40:36

sfqxx 发表于 2023-7-1 21:38
成功

额,白费我问了一遍gpt4,gpt4实在太贵了{:10_266:}

第一个是问的gpt3.5,第二个是问的gpt4

sfqxx 发表于 2023-7-1 21:41:34

isdkz 发表于 2023-7-1 21:40
额,白费我问了一遍gpt4,gpt4实在太贵了

第一个是问的gpt3.5,第二个是问的gpt4

第一个就对了,谢谢昂

歌者文明清理员 发表于 2023-7-1 23:30:54

sfqxx 发表于 2023-7-1 21:41
第一个就对了,谢谢昂

let me help you,the new station of jinshutuan is https://c.binjie.fun

sfqxx 发表于 2023-7-2 15:14:59

歌者文明清理员 发表于 2023-7-1 23:30
let me help you,the new station of jinshutuan is https://c.binjie.fun

开头没有大写,扣分{:10_256:}
页: [1]
查看完整版本: 求助