小米2017秋招算法工程师笔试的最后一道题:

现在有一幅扑克牌,去掉大小王52张牌。随机选出4张牌,可以任意改变扑克牌的顺序,并填入 + - * / 四个运算符,不用考虑括号,除法按整数操作,计算过程中没有浮点数,问是否能够求值得到给定的数m。

现对这道题进行延申,求任意n个大于0数字的+ - * / 能否求得24点。代码如下:

def twentyFour(lst):#当列表内数量为0时,为错误输入,返回Falseif len(lst)==0:return False#当列表内只有1个数字且此数为24,返回Trueif len(lst)==1 and lst[0] == 24: return True#当列表内只有1个数字且此数字不为24,返回Falseif len(lst)==1 and lst[0] != 24: return False#对当前传入的数字做双重循环#对列表内每一个数字:for i in range(len(lst)):#和第i位置之后的数字尝试进行+-*/运算:for j in range(i+1,len(lst)-i):#拷贝得到lst副本newLst = lst[:]#对ij位置数据进行求和计算并储存到i位置中newLst[i] = lst[i]+lst[j]#用于测试输出print(str(lst[i])+'+'+str(lst[j]))#然后删除jdel newLst[j]#对lst1重复进行此操作,若返回真,则为求得了24点if twentyFour(newLst) :return TruenewLst = lst[:]newLst[i] = lst[i]-lst[j]print(str(lst[i])+'-'+str(lst[j]))del newLst[j]if twentyFour(newLst) :return TruenewLst = lst[:]newLst[i] = lst[i]*lst[j]print(str(lst[i])+'*'+str(lst[j]))del newLst[j]if twentyFour(newLst) :return True#注意!分母不能为0if lst[j] != 0:newLst = lst[:]#注意!此处为整除newLst[i] = lst[i]//lst[j]print(str(lst[i])+'/'+str(lst[j]))del newLst[j]if twentyFour(newLst) :return Truereturn Falseprint(twentyFour([1,2,3,4]) )

[面试算法]24点计算相关推荐

  1. Interview:算法岗位面试—10.24下午—上海某软件公司(机器学习,上市)电话面试—考察SVM、逻辑回归、降低过拟合、卷积网络基础等

    Interview:算法岗位面试-10.24下午-上海某软件公司(机器学习,上市)电话面试-考察SVM.逻辑回归.降低过拟合.卷积网络基础等 导读:当时电话来的非常快,我刚做完一家公司的笔试,接着来了 ...

  2. 【机器学习基础】数学推导+纯Python实现机器学习算法24:HMM隐马尔可夫模型

    Python机器学习算法实现 Author:louwill Machine Learning Lab HMM(Hidden Markov Model)也就是隐马尔可夫模型,是一种由隐藏的马尔可夫链随机 ...

  3. 【面试锦囊】14种模式搞定面试算法编程题(1-7)

    面试锦囊之知识整理系列 面试锦囊系列一直有收到大家的反馈,包括后台内推成功的消息.朋友的同事从创业小公司成功跳到huawei等等,非常高兴小破号的这些整理分享能够真正地帮助到大家,以后也会继续.为了更 ...

  4. 【面试锦囊】14种模式搞定面试算法编程题(8-14)

    面试锦囊之知识整理系列 面试锦囊系列一直有收到大家的反馈,包括后台内推成功的消息.朋友的同事从创业小公司成功跳到huawei等等,非常高兴小破号的这些整理分享能够真正地帮助到大家,以后也会继续.为了更 ...

  5. 面试算法工程师时,我居然被化学专业转行的老哥血虐了

    全世界有3.14 % 的人已经关注了 数据与算法之美 我是小A,一个没能当成算法工程师的菜鸡Java工程师,内心却等着上AI这趟车. 去年正是人工智能火热的时候,看着各种高薪招聘,我沉寂很久的内心也火 ...

  6. 蓝桥杯 算法提高 日期计算

    算法提高 日期计算 时间限制:1.0s 内存限制:256.0MB问题描述已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰,逢400年闰的情况. ...

  7. 14种模式解决面试算法编程题(PART I)

    万万没想到,暑假还没开始,有些公司的秋招提前批已经来了-很慌-数据结构和算法题可以说是秋招笔试面试必考的内容,如果你还不够熟练(just like me),那就要从现在开始疯狂刷题了啊朋友们. 附上我 ...

  8. python判断数组中是否有重复元素_python经典面试算法题4.1:如何找出数组中唯一的重复元素...

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. [百度面试题] 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐ 题目描述 ...

  9. 互联网公司最常见的面试算法题大集合!

      转载于 新智元   来源:Github 编辑:元子 [导读]LeetCode是一个美国的在线编程网站,收集了各个大厂的笔试面试题,对找工作的毕业生和开发者来说,非常有价值.很多求职者都会在Leet ...

最新文章

  1. opsforlist 存在贼覆盖_RedisTemplate常用集合使用说明-opsForList(三)
  2. 《实时控制软件开发》学生四次作业成绩总排名
  3. 设计模式六大原则(5)——迪米特原则
  4. python如何导入图片imread_OpenCV 使用imread()函数读取图片的六种正确姿势
  5. c语言如何调用外部文件的函数调用,keil 中如何调用其他文件的函数
  6. python数据结构教程_python入门基础教程随笔1-python数据结构-列表
  7. interview-db
  8. raid(磁盘阵列)
  9. P1262 间谍网络+Trajan 缩点(有向图)
  10. Javaweb项目导出Excel文件无法下载问题
  11. shiro+微信登录整合
  12. 6.Striped64源码解析
  13. 内嵌框架iframe
  14. 利用正则表达式来验证邮箱
  15. linux系统安装软件报错,Linux安装软件时报错解决方法
  16. FlashFXP.v3.5.4.1230-RES-patch by SunBeam
  17. android通知栏自定义软件,免root状态栏美化神器
  18. mysql http隧道_Navicat™ 数据库 HTTP 隧道通信协议
  19. CH455G驱动数码管
  20. 算法笔记之hoorspool算法

热门文章

  1. 创建CSDN虚拟大学
  2. python3, 计算两个矩形框是否重叠,并计算重叠度
  3. ip话机 mitel_华为IP话机
  4. 《Arduino》开发 之 基于 u8g2 库 的 OLED 菜单界面
  5. 坚强的人:可以承受压力的品质是包容
  6. 学术研究科研工具推荐,共9个,拿走不谢!
  7. 鸿蒙osvalue mysql_终于有人把鸿蒙OS讲明白了,大佬讲解!快收藏
  8. Joan Ganz Cooney将接受IBC2018卓越国际荣誉奖
  9. Federico Ferrari 和Ole Sigmund的高效3D拓扑优化程序
  10. 功耗大好还是小好_家电是功率大好还是小好....