|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
复制代码
为什么过不了
你的代码有一点小错误。在循环中,你使用 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 = 0
- for 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)
复制代码
这样修改后,你的代码应该可以通过测试了。希望能帮到你!
|
|