测试面试题

题目:贪婪是好事

贪婪是一种用五个六面骰子玩的骰子游戏。如果你选择接受,你的任务就是按照这些规则得分。而你总是会得到一个有五个六边骰子值的数组。

积分规则:

三个 1 => 1000 分
三个 6 => 600 分
三个 5 => 500 分
三个 4 => 400 分
三个 3 => 300 分
三个 2 => 200 分
一个 1 => 100 分
一个 5 => 50 分

举例:

Throw       Score
---------   ------------------
5 1 3 4 1   250:  50  + 2 * 100
1 1 1 3 1   1100: 1000  + 100
2 4 4 5 4   450:  400  + 50

代码如下:

Python

方法一:

def score(dice):sum1 = 0counter = [0, 0, 0, 0, 0, 0]points = [1000, 200, 300, 400, 500, 600]extra = [100, 0, 0, 0, 50, 0]for die in dice:counter[die - 1] += 1for (i, count) in enumerate(counter):sum1 += (points[i] if count >= 3 else 0) + extra[i] * (count % 3)return sum1

方法二:

def score(dice):# 1. 查看列表内重复元素# 2. 重复次数为1,则判断是否为1或者5# 3. 重复次数大于3时,按照3+1来计算积分points = 0dice.sort()for i in range(1, 7):arr = dice.count(i)if arr < 3 and (i == 1 or i == 5):for j in range(arr):if i == 1:points += 100elif i == 5:points += 50elif arr > 3:if arr == 3:if i == 1:points += 1000elif i == 2:points += 200elif i == 3:points += 300elif i == 4:points += 400elif i == 5:points += 500elif i == 6:points += 600else:if i == 1:points += 1000elif i == 2:points += 200elif i == 3:points += 300elif i == 4:points += 400elif i == 5:points += 500elif i == 6:points += 600arr -= 3for j in range(arr):if i == 1:points += 100elif i == 5:points += 50elif arr == 3:if i == 1:points += 1000elif i == 2:points += 200elif i == 3:points += 300elif i == 4:points += 400elif i == 5:points += 500elif i == 6:points += 600# print(points)return points

【面试测试题】贪婪是好事相关推荐

  1. 富士康计算机笔试题目,富士康师级干部面试测试题

    富士康师级干部面试测试题如下 一.单选题 富士康笔试 1.用计算机管理情报资料,是计算机在 (   )中的应用 A.科学计算 B.数据处理 C.过程处理` D.人工智能 富士康笔试 2.微型计算机系统 ...

  2. 上海富士康 软件测试 工程师 bcb 职责,富士康面试测试题.doc

    新进员工应征测试题 一.填空 1.电容的符号就是__________,国际单位是__________. 2.筷子放在水里会"变弯",这是光的________作用形成的. 3.近视镜 ...

  3. 安卓面试测试题复习专用 2019年版本个人收集

    文章目录 android的四大组件都是什么?简要说明作用及应用场景? 1.Activity onRestart(): onStart(): onResume(): onPause(): onStop( ...

  4. 面试时如何更好的介绍自己的项目

    作者:Gaby 链接:https://juejin.cn/post/7017732278509453348 在面试时,经过简单寒暄后,面试官一般先从让候选人自我介绍开始,紧接着就是问候选人简历中所列的 ...

  5. 这才是介绍项目的正确姿势,终于不用害怕面试了

    在面试时,经过简单寒暄后,面试官一般先从让候选人自我介绍开始,紧接着就是问候选人简历中所列的项目,让介绍下项目经验.常见的问法是,说下你最近的(或感觉不错的)一个项目.面试中很多人忽视对这一个环节的准 ...

  6. 【粉丝福利放送】Python最新书籍免费领取!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! Python学习篇 本次推文,为大家分享一波Python学习书籍,干货资源包中有针 ...

  7. 经典面试题助你成功就业

     六七月是毕业旺季,对于数百万应届大学生而言,这是他们最为忙碌和焦虑的时刻.但每年这个时候,总有些人是例外.小田,沪上某高校英语专业应届毕业生正悠闲地留守在寝室,准备着毕业论文的每一个细节,因为上个月 ...

  8. java中.的意思_java中“:”的意思是什么?

    展开全部 代码块是一种常见的代码形式.他用62616964757a686964616fe58685e5aeb931333365653331大括号"{}"将多行代码封装在一起,形成一 ...

  9. API和SDK是什么?有什么区别?如何测试SDK?一篇文章统统告诉你!

    一.API: 概念:API是指一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节. 二.SDK: 概念:软件开发工具包( ...

最新文章

  1. 转载://C++中getline()、gets()等函数的用法
  2. EVGA Precision—— 显卡超频神器 可用于调节风扇转速 降温
  3. python入职要求_Python入职面试,可能会被企业HR问到的问题,你准备好了吗
  4. 2017-2018-1 20155320 实验三——实时系统
  5. 三级联动第二种方法 三级联动.html
  6. Python-docx 读取word.docx内容
  7. RS485协议和Modbus协议有什么区别?工业网关能用吗?
  8. 分享一下“rmvb转avi“的操作技巧,3步搞定
  9. 电脑自带的edge浏览器无法访问解决问题
  10. 【导数术】4.三次函数
  11. Head First 系列图书资源-PDF网盘下载(更新中)
  12. Android中文API(129) —— AudioManager
  13. 记一次网页打印小票、收据
  14. 金融业务-直接融资与间接融资的概念、区别和特点
  15. HPC平台计算软件依赖, Singularity超级简单
  16. SDUT OJ 蟠桃记
  17. GAN学习总结一 GAN基本概念理解
  18. 安卓 jni 开发错误 undefined reference to __android_log_print
  19. CentOS 7 搭建 TinyProxy 代理
  20. 真机最小化安装centos7 网卡驱动

热门文章

  1. 使用PCA对特征数据进行降维
  2. MATLAB与图像处理(二):批处理读取多张图片,cell
  3. 【图像处理opencv】_图像基础
  4. QT一次性连接多个按钮槽函数
  5. 双NameNode的同步机制
  6. 20年IT老兵分享:账务系统设计及应用--转
  7. 区块链游戏为何只剩下“炒币”的价值?
  8. 埃森哲咨询公司为何拥有世界上最多的区块链职位空缺
  9. 纲:散户炒股存两大弱势 我自己不炒也不建议小散炒
  10. Slack:日活跃用户50万人、6周增幅35%造就奇迹