字节跳动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 ...
随机推荐
- CF3D Least Cost Bracket Sequence 贪心
Least Cost Bracket Sequence CodeForces - 3D 题目描述 This is yet another problem on regular bracket sequ ...
- XSS与CSRF定义
一. CSRF 1. CSRF的基本概念 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通 ...
- shell专题(二):Shell解析器
(1)Linux提供的Shell解析器有: [atguigu@hadoop101 ~]$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/da ...
- python 并发专题(五):离散事件仿真(事件循环生成器)
出租车队运营仿真 创建几辆出租车,每辆车会拉几个乘客,然后回家.出租车首先驶离车库,四处徘徊,寻找乘客:拉到乘客后,行程开始:乘客下车后,继续四处徘徊. 程序解释 程序的输出示例: 创建 3 辆出租车 ...
- kafka 监控工具 eagle 的安装(内附高速下载地址)
简介 如图 kafka eagle 是可视化的 kafka 监视系统,用于监控 kafka 集群 环境准备: 需要的内存:1.5G+ 支持的 kafka 版本:0.8.2.x,0.9.x,0.10.x ...
- 深度剖析分布式单点登录框架XXL-SSO
于2018年初,在github上创建XXL-SSO项目仓库并提交第一个commit,随之进行系统结构设计,UI选型,交互设计-- 于2018年初,在github上创建XXL-SSO项目仓库并提交第一个 ...
- JavaScript图形实例:阿基米德螺线
1.阿基米德螺线 阿基米德螺线亦称“等速螺线”.当一点P沿动射线OP以等速率运动的同时,该射线又以等角速度绕点O旋转,点P的轨迹称为“阿基米德螺线”. 阿基米德螺线的笛卡尔坐标方程式为: r=10*( ...
- 这就是Java代码生成器的制作流程
1. 前言 前几天写了篇关于Mybatis Plus代码生成器的文章,不少同学私下问我这个代码生成器是如何运作的,为什么要用到一些模板引擎,所以今天来说明下代码生成器的流程. 2. 代码生成器的使用场 ...
- P5198 [USACO19JAN]Icy Perimeter S (洛谷) (水搜索)
同样是因为洛谷作业不会写…… 写(水)博客啦. 直接放题目吧,感觉放在代码框里好看点 Farmer John要开始他的冰激凌生意了!他制造了一台可以生产冰激凌球的机器,然而不幸的是形状不太规则,所以他 ...
- 设计模式:singleton模式
目的:限制类的实例个数只能是一个 例子: #define AGT_DECLARE_SINGLETON(ClassName) \ public: \ static ClassName *Instance ...