字节跳动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 ...
随机推荐
- Mysql 常用语句实战(2)
前置 sql 语句 用来创建表.插入数据 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- ...
- 好看的UI框架
一.Web 1.semantic-ui: https://semantic-ui.com/elements/divider.html 二.H5 1.BUI: http://www.easybui.co ...
- day28 封装
目录 一.什么是封装 二.将封装的属性进行隐藏操作 1 如何隐藏: 1.1 强行访问: 1.2 内部逻辑 三.为何要封装 一.什么是封装 封装是面向对象的三大特性中最核心的一个特性 封装<==& ...
- 深入Vue-router最佳实践
前言 最近再刷Vue周边生态的官方文档,因为之前的学习都是看视频配合着文档,但主要还是通过视频学习,所以很多知识点都没有了解,至从上次刷了Vuex的官方文档就体会到了通读文档的好处,学习一门技术最好的 ...
- Scala 面向对象(二):package 包 (一) 入门
1 Scala包的基本介绍 和Java一样,Scala中管理项目可以使用包,但Scala中的包的功能更加强大,使用也相对复杂些,下面我们学习Scala包的使用和注意事项. 2 Scala包快速入门 使 ...
- nginx配置使用, 入门到实践
1. 本文做自己学习配置使用, 转自: https://mp.weixin.qq.com/s?__biz=Mzg2MjEwMjI1Mg%3D%3D&chksm=ce0dae4df97a275b ...
- 接口测试框架实战(三)| JSON 请求与响应断言
关注公众号,获取测试开发实战干货合辑.本文节选自霍格沃兹<测试开发实战进阶>课程教学内容. 数据驱动就是通过数据的改变驱动自动化测试的执行,最终引起测试结果的改变.简单来说,就是参数化在自 ...
- 使用位运算、值交换等方式反转java字符串-共四种方法
在本文中,我们将向您展示几种在Java中将String类型的字符串字母倒序的几种方法. StringBuilder(str).reverse() char[]循环与值交换 byte循环与值交换 apa ...
- bzoj2292【POJ Challenge 】永远挑战*
bzoj2292[POJ Challenge ]永远挑战 题意: 有向图,每条边长度为1或2,求1到n最短路.点数≤100000,边数≤1000000. 题解: 有人说spfa会T,所以我用了dijk ...
- maven&nexus_repository 私库搭建与使用
一.nexus仓库安装 1,http://www.sonatype.org/nexus/ 下载sso版本,免费2,tar -zxvf nexus-2.11.1-01-bundle.tar.gz3 ...