拉勾上的一道题目

在拉勾上看到一道题目,或许有很多精妙的做法,欢迎讨论,集思广益。题目如下:

FizzBuzzWhizz

你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏。此时有100名学生在上课。游戏的规则是:

1. 你首先说出三个不同的特殊数,要求必须是个位数,比如3、5、7。

2. 让所有学生拍成一队,然后按顺序报数。

3.
学生报数时,如果所报数字是第一个特殊数(3)的倍数,那么不能说该数字,而要说Fizz;如果所报数字是第二个特殊数(5)的倍数,那么要说Buzz;如果所报数字是第三个特殊数(7)的倍数,那么要说Whizz。

4. 学生报数时,如果所报数字同时是两个特殊数的倍数情况下,也要特殊处理,比如第一个特殊数和第二个特殊数的倍数,那么不能说该数字,而是要说FizzBuzz, 以此类推。如果同时是三个特殊数的倍数,那么要说FizzBuzzWhizz。
5. 学生报数时,如果所报数字包含了第一个特殊数,那么也不能说该数字,而是要说相应的单词,比如本例中第一个特殊数是3,那么要报13的同学应该说Fizz。如果数字中包含了第一个特殊数,那么忽略规则3和规则4,比如要报35的同学只报Fizz,不报BuzzWhizz。

现在,我们需要你完成一个程序来模拟这个游戏,它首先接受3个特殊数,然后输出100名学生应该报数的数或单词。比如,

输入

3,5,7

输出(片段)

1
2
Fizz
4
Buzz
Fizz
Whizz
8
Fizz
Buzz
11
Fizz

Fizz
Whizz
FizzBuzz
16
17
Fizz
19
Buzz 

一直到100

我的解法:


#常规做法
def dump_number(num1, num2, num3):
for i in range(1, 101):
if str(i).find(‘3‘) > -1:
print(‘Fizz‘)
elif i % (num1 * num2 * num3) == 0:
print(‘FizzBuzzWhizz‘)
elif i % (num1 * num2) == 0:
print(‘FizzBuzz‘)
elif i % (num1 * num3) == 0:
print(‘FizzWhizz‘)
elif i % (num2 * num3) == 0:
print(‘BuzzWhizz‘)
elif i % num1 == 0:
print(‘Fizz‘)
elif i % num2 == 0:
print(‘Buzz‘)
elif i % num3 == 0:
print(‘Whizz‘)
else:
print(i)

dump_number(3, 5, 7)


#一句话搞定收工
r = [str(i).find(‘3‘) > -1 and ‘Fizz‘ or ‘Fizz‘[i % 3 * 4 : ] + ‘Buzz‘[i % 5 * 4 : ] + ‘Whizz‘[i % 7 * 5 : ] or i for i in range(1, 101)]
print(r)

拉勾上的一道题目,码迷,mamicode.com

时间: 2024-10-12 01:49:26

拉勾上的一道题目的相关文章

使用nodejs爬取拉勾苏州和上海的.NET职位信息

最近开始找工作,本人苏州,面了几家都没有结果很是伤心.在拉勾上按照城市苏州关键字.NET来搜索一共才80来个职位,再用薪水一过滤,基本上没几个能投了.再加上最近苏州的房价蹭蹭的长,房贷压力也是非常大,所以有点想往上海去发展.闲来无聊写了个小爬虫,爬了下苏州跟上海的.NET职位的信息,然后简单对比了一下. 是的小弟擅长.NET,为啥用nodejs?因为前几天有家公司给了个机会可以转nodejs,所以我是用来练手的,不过后来也泡汤了,但是还是花两晚写完了.刚学,代码丑轻喷哈! 一:如何爬取拉勾的数据

好多公司是在拉钩上做广告

拉勾上的没啥意义 好多公司是做广告 因为这样比较容易被客户搜到 实际他根本就不招人 或者说他只招两三个人,搞一大堆职位在上面 然后你一搜,搜到公司了 就等于是给客户看的 人家就没打算招人,工资当然是随便写了 这个扯远了.我好像看到你们的开发人员待遇是7k到12K?? 是的,我们都是招普通本科生 那些大公司基本都是招重点大学的,待遇确实高一些 但是实际这些所谓高工资的职位,在小公司就不存在 因为那是用来做广告的 但是你们公司的架构师一定是高手里的高手,所以项目还是能做成 我们自己创业的,都是高手啊

程序员的进化 - 在拉勾1024程序员节上的演讲

注:以下本文来自于我在拉勾网1024程序员节上的现场演讲. 我是蒋宇捷,信天创投的合伙人,之前是百度魔图的联合创始人. 我先做个自我介绍,其实每次介绍自己其实是很痛苦的事情,因为我前不久在拉勾的分享刚刚介绍过.开个玩笑,我希望再过几年,只要站到这里大家都认识我,不用再做自我介绍,这才是我的人生目标. 王啸刚才分享的经历非常直接,创业成功就开始做天使投资.我的经历比较类似,但是更曲折,工作7年,经历过4家公司. 我最开始在傲游,是创业团队的第11号员工,在这家公司呆了3年的时间.后来2010年我去

js 也来 - 【拉勾专场】抛弃简历!让代码说话!

前些日子谢亮兄弟丢了一个链接在群里,我当时看了下,觉得这种装逼题目没什么意思,因为每种语言都有不同的实现方法,你怎么能说你的方法一定比其他语言的好,所以要好的思路 + 好的语言特性运用才能让代码升华. 题目如下:<[拉勾专场]抛弃简历!让代码说话!> ? FizzBuzzWhizz 你是一名体育老师,在某次课距离下课还有五分钟时,你决定搞一个游戏.此时有100名学生在上课.游戏的规则是: 1. 你首先说出三个不同的特殊数,要求必须是个位数,比如3.5.7. 2. 让所有学生拍成一队,然后按顺序

由一道题目引出的java多态

某次逛论坛时发现一个非常有意思的题目,如下: class A<B> { public String show(A obj) { return ("A and A"); } public String show(B obj) { return ("A and B"); } } class B extends A { public String show(B obj) { return ("B and B"); } public Stri

UWP 拉勾客户端

前些天, 用 Xamarin.Forms (XF) 将就着写了个拉勾的 UWP 和 Android 的客户端. XF 对 Android  和 IOS 的支持做的很到位, 但是对 UWP 的支持目前仅限于预览版, "预留" 了很多BUG. 本想着等 Xamarin 团队尽快发部更新, 我好改掉这些 BUG, 但是苦等了个把月, 发部的 DLL 不但没有修改我所遇到的这些 BUG, 反而 BUG 越来越多了... 算鸟, 我也不等你了, 直接新开个项目, 直接写个 UWP 的... 源码

分析函数之初体验(一)——一道题目产生的兴趣

本来公司说是要做BI的,后来被改成了一个报表系统,失去了体验BI的机会,有些不爽. 报表系统是由顾问公司做,顾问公司说要看我们的SQL水平,给出了一份试题,其中有一题是这样的: t_hykbgjl 记录了会员卡每次的发生额(nFse) .余额(nYe)及卡号(sKH),对于同一会员卡,上一条记录的余额加上本次发生额应等于本次的余额.否则帐将不平.记录号为sJlbh,请写出列出所有会员卡不平帐记录的Sql语句. 从题目上分析,需要把上一行的余额拿下来进能计算,如果采用传统写法,可能需要很多的嵌套,

前程无忧投资拉勾有着如何“不可告人”的秘密?

今天互联网圈最大的新闻,就是前程无忧1.2亿美金投资了拉勾.在互联网圈,很多人都知道拉勾,但很少人关心前程无忧. 这种上古时代的网站谁还用呢?为什么一家公司可以拿出将近10亿现金?后来扒了一下他们的财报,发现简直是闷声赚大钱的典范. 今天还没看到一篇文章分析前程无忧,我就写了一些零碎的点,希望能帮大家看懂前程无忧这家神奇的公司. 1.我记得前程无忧1999年已经在了,属于恐龙级别的互联网公司.但他们并不是和恐龙一样的结局.2016财年,前程无忧净利润率为33%,这是什么概念呢?除了腾讯阿里网易,

Android-PullToRefresh下拉刷新,上拉加载的使用详解

哎,最近事真的是多.没有坚持写博客虽然写得差,但还是得坚持写嘛!废话不多说,进入今天的主题. 在Android开发中下拉刷新,上拉加载这个功能是一般商业应用的App中必不可少的一个功能效果.但是对于新手来说,自定义下拉刷新的ListView可能还是会遇到很多的问题.而对于要快速开发的公司来说,可能时间又比较紧张.那么这时候我们就要用到一个开源控件Android-PullToRefresh了.这个开源控件是一款非常优秀的开源控件,可以直接从Github上下载下来直接使用.下载链接地址:https: