字节跳动2020-ByteCamp暑期夏令营研发组习题
概要
本文主要是记录字节2020夏令营的笔试习题,解答部分待日后不断完善。
选择题部分记录不是很完全,剩下没有被收录的大都偏容易。
单项选择题
- 箱子里有20个红球,18个白球,逐一随机抽取球,问整个过程中箱外白球至少有一次和箱外红球相等的概率。
- 求f(x)=x-sinx的零点个数
多项选择题
- 假设在单核无超线程CPU场景下执行如下代码「x=x+1,y=y+x」,有三个线程分别执行这段代码,在所有线程开始前,假设有2个变量x,y,x和y都被初始化为1,x和y值会且只会被这三个线程修改,线程随时会被抢占,设该代码均为原子的,则可能得到的结果?
填空题
- 有一台机器,可批量输入单词,会返回其翻译值,但是不知道对应关系,现有1000个单词,问最少需要()次才可以确定它们的翻译。
- 幼儿园阿姨买了很多糖果,让6位小朋友早上自己分糖果,第一个先分成相等6堆,结果发现多出来1颗,于是他吃了一颗然后拿走一堆,剩下五堆;第二个小朋友把五堆合在一起,又分了6堆,结果发现又多了一个,于是他也吃了一颗拿走一堆,剩下的亦如此。问阿姨至少买了多少颗糖。
编程题
题目描述:
小包有一个纪念日,他特别喜欢这个日子,于是把它以"DD-MM-YYYY" (如:31-01-2020,代表2020年1月31日) 的格式记录了下来。但小包不想被别人知道这个日子,于是他将这个日子与很多别的日子写在一起,且该日子的出现次数最多。
小包不小心忘记了纪念日到底是哪天,所以小包现在需要从之前的记录中找到这个纪念日。输入描述:
一行一个字符串,其中只包含数字和字符"-",字符串长度不超过10^5。
2001 <= YYYY <= 2020
01<=MM<=12
DD满足每个月份的日期数,需要考虑闰年的2月
MM和DD不够两位数时会填充前导0,如2020年1月1日会写成01-01-2020而不是1-1-2020。
输入保证一定存在一个符合要求的合法的日期,且保证一定存在一个日期出现次数严格大于别的日期出现次数。输出描述:
纪念日日期,以DD- MM-YYYY"的格式。
示例1:
输入:20-12-2030-12-2020
输出:30-12-2020
说明:符合条件的日期只有30-12-2020这一个。注意数据中的20-12-2030年份超出了2001 <= YYYY <= 2020范围,因此不计算在内。
题目描述:
字节跳动有很多个机房,每个机房可能会有很多个网段(如 10.1.2.0/24),网段之间会有包含关系,当出现包含关系时,以小的网段为准。如机房1对应网段10.1.0.0/16,机房2对应网段10.1.2.0/24,那么现在有一个IP 10.1.2.3,其应当归属于机房2。
公司内我们经常会遇到一个场景:要查询一个IP所在的机房。请你写一个程序,根据输入的网段信息和所需查询的IP给出所在的机房。为了简化问题,在这里我们认为所有IP都是可分配的,即不考虑网段地址和广播地址,将这两种地址也认为是可分配地址。
输入描述:
第一行包含两个整数n和m。随后n行,每行有两部分组成,第一部分是机房编号,第二部分是网段信息,格式如下:
idc net
随后m行,每行是一个IP,表示需要查询的IP。
保证所有的网段以及IP都为IPV4格式,不存在IPV6 的输入数据。
要注意,输入可能存在一个大网段被多个小网段切分完毕的情况。数据范围:
对于30%的数据:1<=n<=10、1<=m<=100;
对于60%的数据,1<=n<=1000、1<=m<=5000;
对于100%的数据,1<=n<=5000、1<=m<=50000。输出描述:
输出一共有m行,每行为一个整数,代表第Mi行IP对应的机房编号。
如果所输入的IP没有找到对应的网段信息,就输出-1。示例1:
输入:
4 4
1 10.1.2.0/24
2 10.1.0.0/16
1 10.1.5.0/24
2 10.1.2.128/125
10.1.2.3
10.1.2.129
10.3.2.1
10.1.5.2
输出:
1
2
-1
1
题目描述:
两姐妹小蔓和小玉玩抽牌游戏:一共n张牌,两人轮流抽排,先手者的第一次抽可以抽任意张但不可抽完,以后每次抽都只能抽取不超过上一次抽牌数的两倍(不可不抽)。谁先抽完牌谁赢(没得抽的算输)。由姐姐小蔓先抽。假设该游戏会进行t轮,每轮重新给出新的n。请问先手的姐姐小蔓一共能赢其中的多少轮呢?(注:两姐妹冰雪聪明,都会做出对自己最优的策略)
输入描述:
第一行,一个数字t
接下来t行,每行一个数字,n输出描述:
一个数字x,代表姐姐小蔓赢得轮数
示例1:
输入:
2
4
5
输出:1
说明:
2<=n<=1e9
30%的数据(1<=t<=10^3)
60%的数据(1<=t<=10^5)
100%的数据(1<=t<=10^6)
题目描述:
我们在使用Tensorflow等编写神经网络时,为了使代码逻辑清晰,可能会造成运行时的低效。小熊写出了如下的计算式:
(p0-(p1 /(p0 + (p3-p4))))+ (p2*(p1 /(p0 + (p3- p4))
在Tensorflow中可以表示为如下图一,其中p1/ (p0 + (p3 - p4))计算了两次。还好Tensorlfow提供的XL A(Accelerated Linear Algebra)对此进行了优化,只需计算一次,计算流程被优化为如下图二形式。

小熊露出了满意的笑容的同时,开始思考这个过程是怎么完成的。他已经把这个问题简化,他使用前缀表示法来表示这些计算式,并限定操作符于{+,-, *,/},操作数为单个小写字母。可描述如下:
E in{a, b,...Z}
f in{t,-,*k,/}
F= f(E, E)
F= f(E, F)令上述表达式中p0=a, p1=b, p2=c, p3=d, p4=e,前缀表示法可表示为:
+(-(a,/(b,+(a,-(d,e)))),*(c,/(b,+(a,-(d,e)))))
他希望能将这个表达式的计算节点优化到最少,能不能帮他写个程序来完成这个任务?
对于每个表达式,将其计算节点优化到最少。并将优化的子表达式以一个数字表示,这个数字指向等于此子表达式的根节点的序号。节点的序号从1开始,按前序遍历分配,如果是重复节点则不分配编号。如"a+a"可转换为前缀表达式"+(a,a)",第二个"a"发现第一个"a"作为节点(编号2)已经出现过,因此可优化为"+(a,2)",2表示指向编号为2的节点。而在"+(-(a,/(b,+(a,-(d,e)))),(c,/(b,+(a,-(d,e)))))"中,"a"和"/(b,+(a,-(d,e)))"都是重复的, 其中a第一次出现的节点编号为3,"/(b,+(a,-(d,e)))"第一 次出现的根节点"/"编号为4,因此可以优化为"+(-(a,/(b,+(3,-(d,f)))),*(c,4))"。
输入描述:
第一行包含一个数字c,表示将要处理的表达式行数,不超过200行。接下来的c行每行包含一个表达式,表达式的形式由上述给出(已转换为前缀形式,无空格,有括号)。最多包含10000个节点。
输出描述:
对于每个表达式,输出按说明中优化后的表达式。
示例1:

转载说明
本文首先发布于个人博客上,转载请注入声明。
字节跳动2020-ByteCamp暑期夏令营研发组习题的更多相关文章
- 字节跳动已经10万人了?渣本双非Android程序员怎么上车?
字节跳动已经 10 万人了? 是的,在 2020 年字节跳动的员工总数从 6 万蹿到 10 万,平均每个工作日就有 150 人在办理入职,加入字节跳动全球超过 240 个办公点. 更有统计,在总部北京 ...
- 面试利器!字节跳动2021年Android程序员面试指导小册已开源
整份手册分为两个部分,分别是:Java部分.Android部分.数据结构与算法篇.字节跳动2020年全年面试题总结篇! 每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图 ...
- 2020年Android开发最新整理阿里巴巴、字节跳动、小米面经,你不看看吗?
前言 2020年是转折的一年,上半年疫情原因,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想 ...
- 不等"金九银十",金风八月,我早已拿下字节跳动的offer
字节跳动,我是在网上投的简历,之前也投过一次,简历都没通过删选,后来让师姐帮我改了一下简历,重新投另一个部门,获得了面试机会.7月23日,中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我准 ...
- 【字节校招】【实习】【内推】字节跳动春招(校招或实习均可)以及日常实习内推ing
本人是年前刚刚入职抖音的应届生,职业认证还未来的级更改,但是这些都不重要.重要的是我们不能错过优秀的你~ 字节跳动的相关福利我就不介绍了,技术实习生是400/天,房补是1500/月,三餐免费,下午茶, ...
- 字节跳动在 Go 网络库上的实践
https://mp.weixin.qq.com/s/wSaJYg-HqnYY4SdLA2Zzaw RPC 框架作为研发体系中重要的一环,承载了几乎所有的服务流量.本文将简单介绍字节跳动自研网络库 n ...
- 深度介绍Flink在字节跳动数据流的实践
本文是字节跳动数据平台开发套件团队在1月9日Flink Forward Asia 2021: Flink Forward 峰会上的演讲分享,将着重分享Flink在字节跳动数据流的实践. 字节跳动数据流 ...
- 字节跳动流式数据集成基于Flink Checkpoint两阶段提交的实践和优化
背景 字节跳动开发套件数据集成团队(DTS ,Data Transmission Service)在字节跳动内基于 Flink 实现了流批一体的数据集成服务.其中一个典型场景是 Kafka/ByteM ...
- 字节跳动构建Data Catalog数据目录系统的实践(上)
作为数据目录产品,Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业务场景,并服务于数据开发和数据治理的产品体系.本文介绍了字节跳动 Data ...
随机推荐
- 分享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo+SkyWalking的微服务开发框架
集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo的微服务开发框架 Github源代码地址 htt ...
- Java入门基础学习,成为一个Java程序员的必备知识
引言 众所周知,Java是一种面向对象的编程语言.您可以在Windows操作系统上编写Java源代码,而在Linux操作系统上运行编译后的字节码,而无需修改源代码. 数据类型 Java 有 2 种数据 ...
- Scala 面向对象(一):类与对象基础(一)
1 如何定义类 [修饰符] class 类名 { 类体 } 定义类的注意事项 1)scala语法中,类并不声明为public,所有这些类都具有公有可见性(即默认就是public), 2)一个Scala ...
- scrapy 基础组件专题(十四):scrapy CookiesMiddleware源码
一 Scrapy框架--cookie的获取/传递/本地保存 1. 完成模拟登陆2. 登陆成功后提取出cookie,然后保存到本地cookie.txt文件中3. 再次使用时从本地的cookie.txt中 ...
- java 面向对象(十五):面向对象的特征三:多态性
1.多态性的理解:可以理解为一个事物的多种形态.2.何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)举例:Person p = new Man();Object obj ...
- redis(二十):Redis 架构模式实现(主从复制)
什么是主从复制 我们可以通过slaveof <host> <port>命令,或者通过配置slaveof选项,来使当前的服务器(slave)复制指定服务器(master)的内容, ...
- 前端03 /css简绍/css选择器
前端03 /css简绍/css选择器 目录 前端03 /css简绍/css选择器 昨日内容回顾 html标签 常用标签 table标签:表格标签 input标签 select下拉框 textarea多 ...
- web前端知识点(webpack篇)
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr ...
- POJ 1047 Round and Round We Go 最详细的解题报告
题目链接:Round and Round We Go 解题思路:用程序实现一个乘法功能,将给定的字符串依次做旋转,然后进行比较.由于题目比较简单,所以不做过多的详解. 具体算法(java版,可以直接A ...
- 30页软件测试人面试宝典文档资料,助你拿下了百度、美团、字节跳动、小米等大厂的offer【内含答案】
前言:看了一下桌边的日历,新的6月,已经过去5天了.明天又是周六了,大家准备怎么度过呢?趁着大家周末给大家分享一个软件测试工程师面试题汇总. 拿到大厂的offer一直是软件测试朋友的一个目标,我是如何 ...