高尔夫分数
算法描述
- 假设,高尔夫球场包含18个洞口,选手的目标是从指定的点打球到另一终点
- 每个洞口都是一个正数par,一个平均选手完成该任务的期望值
- 一个选手的表现使用par的浮动值来表示
例如,“bogey”,选手需要完成该洞口的任务是比par值多1;“double bogey”表示比par值多2分列举如下
“triple bogey” par + 3
“double bogey” par + 2
“bogey” par + 1
“par” par
“birdie” par – 1
“eagle” par – 2
“albatross” par – 3
“hole in one” 不增不减算法需要根据以上等级确定具体分数,18个par的值会以数组的形式给出
参数定义
- 类名
GolfScore
- 方法
tally
- 输入参数
vector <int>, vector <string>
- 输出
int
- 方法声明
int tally(vector <int> parValues, vector <string> scoreSheet)
限制条件
parValues
和scoreSheet
都只包含18个元素parValues
的每个元素在[1, 5]之间
例子
- 输入
- parValues: {1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, 5}
- scoreSheet : {“bogey”, “bogey”, “bogey”, “bogey”, “bogey”, “bogey”, “bogey”, “bogey”, “bogey”, “eagle”, “eagle”, “eagle”, “eagle”, “eagle”, “eagle”, “eagle”, “eagle”, “eagle”}
- 输出
- 45
前面9个分数:9*2 = 18
后面9个分数:9*3 = 27
18+27 = 45.
测试实例
实例一
输入
- {3, 2, 4, 2, 2, 1, 1, 1, 3, 2, 4, 4, 4, 2, 3, 1, 3, 2}
- {“bogey”, “double bogey”, “par”, “double bogey”, “double bogey”, “triple bogey”, “triple bogey”, “triple bogey”, “bogey”, “double bogey”, “par”, “par”, “par”, “double bogey”, “bogey”, “triple bogey”, “bogey”, “double bogey”}
输出
- 72
实例二
- 输入
- {3, 2, 4, 2, 2, 1, 1, 1, 3, 2, 4, 4, 4, 2, 3, 1, 3, 2}
- {“eagle”, “birdie”, “albatross”, “birdie”, “birdie”, “par”, “hole in one”, “par”, “eagle”, “birdie”, “albatross”, “albatross”, “albatross”, “birdie”, “eagle”, “hole in one”, “eagle”, “birdie”}
- 输出
- 18
- 输入
实例三
- 输入
- {4, 1, 3, 3, 4, 4, 1, 4, 2, 3, 3, 5, 4, 1, 4, 4, 2, 1}
- {“triple bogey”, “triple bogey”, “bogey”, “par”, “triple bogey”, “double bogey”, “triple bogey”, “triple bogey”, “par”, “eagle”, “bogey”, “bogey”, “birdie”, “par”, “triple bogey”, “eagle”, “triple bogey”, “triple bogey”}
- 输出
- 77
- 输入