鱼C论坛

 找回密码
 立即注册
查看: 1745|回复: 7

[已解决]求助

[复制链接]
发表于 2023-7-1 21:21:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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[D])
    money2+=money[A]
  except:
    money2+=money[0]
  D+=1

print(money2)

为什么过不了
最佳答案
2023-7-1 21:22:15
你的代码有一点小错误。在循环中,你使用 plates.index(colors[D]) 来查找颜色对应的盘子的索引,但是这个方法只会返回第一个匹配的索引,而不是根据颜色匹配。因此,你的代码可能会出现错误的结果。

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

下面是修改后的代码:
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[colors[ i]] = money[i+1]  # 第一个价格是P_0,所以从money[i+1]开始total_price = 0for i in range(N):    color = plates[ i]    if color in price_dict:        total_price += price_dict[color]    else:        total_price += money[0]  # 如果颜色不匹配,使用P_0的价格print(total_price)
这样修改后,你的代码应该可以通过测试了。希望能帮到你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-1 21:22:15 | 显示全部楼层    本楼为最佳答案   
你的代码有一点小错误。在循环中,你使用 plates.index(colors[D]) 来查找颜色对应的盘子的索引,但是这个方法只会返回第一个匹配的索引,而不是根据颜色匹配。因此,你的代码可能会出现错误的结果。

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

下面是修改后的代码:
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[colors[ i]] = money[i+1]  # 第一个价格是P_0,所以从money[i+1]开始total_price = 0for i in range(N):    color = plates[ i]    if color in price_dict:        total_price += price_dict[color]    else:        total_price += money[0]  # 如果颜色不匹配,使用P_0的价格print(total_price)
这样修改后,你的代码应该可以通过测试了。希望能帮到你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-1 21:38:20 | 显示全部楼层

你的代码逻辑有误。你应该是对于每一盘寿司,查找它的颜色是否在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[i] in colors:
        total += money[colors.index(plates[i])+1]
    else:
        total += money[0]


print(total)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-1 21:38:24 | 显示全部楼层
isdkz 发表于 2023-7-1 21:22
你的代码有一点小错误。在循环中,你使用 plates.index(colors[D]) 来查找颜色对应的盘子的索引,但是这个 ...

成功
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-1 21:40:36 | 显示全部楼层

额,白费我问了一遍gpt4,gpt4实在太贵了

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

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
sfqxx + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-1 21:41:34 From FishC Mobile | 显示全部楼层
isdkz 发表于 2023-7-1 21:40
额,白费我问了一遍gpt4,gpt4实在太贵了

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

第一个就对了,谢谢昂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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

开头没有大写,扣分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 09:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表