概要

本文主要是记录字节2020夏令营的笔试习题,解答部分待日后不断完善。

选择题部分记录不是很完全,剩下没有被收录的大都偏容易。

单项选择题

  1. 箱子里有20个红球,18个白球,逐一随机抽取球,问整个过程中箱外白球至少有一次和箱外红球相等的概率。
  2. 求f(x)=x-sinx的零点个数

多项选择题

  1. 假设在单核无超线程CPU场景下执行如下代码「x=x+1,y=y+x」,有三个线程分别执行这段代码,在所有线程开始前,假设有2个变量x,y,x和y都被初始化为1,x和y值会且只会被这三个线程修改,线程随时会被抢占,设该代码均为原子的,则可能得到的结果?

填空题

  1. 有一台机器,可批量输入单词,会返回其翻译值,但是不知道对应关系,现有1000个单词,问最少需要()次才可以确定它们的翻译。
  2. 幼儿园阿姨买了很多糖果,让6位小朋友早上自己分糖果,第一个先分成相等6堆,结果发现多出来1颗,于是他吃了一颗然后拿走一堆,剩下五堆;第二个小朋友把五堆合在一起,又分了6堆,结果发现又多了一个,于是他也吃了一颗拿走一堆,剩下的亦如此。问阿姨至少买了多少颗糖。

编程题

  1. 题目描述:

    小包有一个纪念日,他特别喜欢这个日子,于是把它以"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范围,因此不计算在内。

  2. 题目描述:

    字节跳动有很多个机房,每个机房可能会有很多个网段(如 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
  3. 题目描述:

    两姐妹小蔓和小玉玩抽牌游戏:一共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)

  4. 题目描述:

    我们在使用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暑期夏令营研发组习题的更多相关文章

  1. 字节跳动已经10万人了?渣本双非Android程序员怎么上车?

    字节跳动已经 10 万人了? 是的,在 2020 年字节跳动的员工总数从 6 万蹿到 10 万,平均每个工作日就有 150 人在办理入职,加入字节跳动全球超过 240 个办公点. 更有统计,在总部北京 ...

  2. 面试利器!字节跳动2021年Android程序员面试指导小册已开源

    整份手册分为两个部分,分别是:Java部分.Android部分.数据结构与算法篇.字节跳动2020年全年面试题总结篇! 每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图 ...

  3. 2020年Android开发最新整理阿里巴巴、字节跳动、小米面经,你不看看吗?

    前言 2020年是转折的一年,上半年疫情原因,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想 ...

  4. 不等"金九银十",金风八月,我早已拿下字节跳动的offer

    字节跳动,我是在网上投的简历,之前也投过一次,简历都没通过删选,后来让师姐帮我改了一下简历,重新投另一个部门,获得了面试机会.7月23日,中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我准 ...

  5. 【字节校招】【实习】【内推】字节跳动春招(校招或实习均可)以及日常实习内推ing

    本人是年前刚刚入职抖音的应届生,职业认证还未来的级更改,但是这些都不重要.重要的是我们不能错过优秀的你~ 字节跳动的相关福利我就不介绍了,技术实习生是400/天,房补是1500/月,三餐免费,下午茶, ...

  6. 字节跳动在 Go 网络库上的实践

    https://mp.weixin.qq.com/s/wSaJYg-HqnYY4SdLA2Zzaw RPC 框架作为研发体系中重要的一环,承载了几乎所有的服务流量.本文将简单介绍字节跳动自研网络库 n ...

  7. 深度介绍Flink在字节跳动数据流的实践

    本文是字节跳动数据平台开发套件团队在1月9日Flink Forward Asia 2021: Flink Forward 峰会上的演讲分享,将着重分享Flink在字节跳动数据流的实践. 字节跳动数据流 ...

  8. 字节跳动流式数据集成基于Flink Checkpoint两阶段提交的实践和优化

    背景 字节跳动开发套件数据集成团队(DTS ,Data Transmission Service)在字节跳动内基于 Flink 实现了流批一体的数据集成服务.其中一个典型场景是 Kafka/ByteM ...

  9. 字节跳动构建Data Catalog数据目录系统的实践(上)

    作为数据目录产品,Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业务场景,并服务于数据开发和数据治理的产品体系.本文介绍了字节跳动 Data ...

随机推荐

  1. appium移动端自动化测试环境搭建windows-appium-android

    第一步:安装jdk 安装jdk(1.7版本以上) 安装完成设置jdk环境变量(百度查询) cmd命令下键入 java -version命令检查jdk是否安装成功且设置环境变量成功,如下图所示: 第二步 ...

  2. Python 的print报错SyntaxError: invalid syntax

    1. #!/usr/bin/python print "hello world!" print报错:SyntaxError: Missing parentheses in call ...

  3. Idea JAVA开发工具快速上手-常用快捷键汇总

    前言: 之前一直使用Eclipse 系列开发IDE工具,由于eclipse是开源的所以,一般情况,eclipse基本上每一个java入门者的首选开发工具,其次 Myeclipse.不过现在越来越多的人 ...

  4. XSS 跨站脚本

    xss常用绕过姿势 大小写绕过 利用语句: http://192.168.1.102/xss/example2.php?name=<sCript>alert("hey!" ...

  5. scrapy 基础组件专题(八):scrapy-redis 框架分析

    scrapy-redis简介 scrapy-redis是scrapy框架基于redis数据库的组件,用于scrapy项目的分布式开发和部署. 有如下特征:  分布式爬取 您可以启动多个spider工 ...

  6. redis(十):Redis 列表(List)

    Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边) 一个列表最多可以包含 232 - 1 个元素 (4294967 ...

  7. 前端09 /jQuery标签操作、事件、补充

    前端09 /jQuery标签操作.事件.补充 目录 前端09 /jQuery标签操作.事件.补充 1.标签内文本操作 1.1 html标签元素中的所有内容 1.2 text 标签元素的文本内容 2.文 ...

  8. wiremock技术入门

    mock用于制作测试桩,是非常好用的自动化测试mock工具  一.下载 进入官网的下载地址: http://wiremock.org/docs/running-standalone/

  9. 小书MybatisPlus第4篇-表格分页与下拉分页查询

    本文为mybatis系列文档的第4篇,前三篇请访问下面的网址. 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总结 小 ...

  10. (3)html-webpack-plugin的作用

    在内存中生成index.html页面 在前面的内容中我们已经知道了如何在内存中打包main.js并引入到页面中. 同样的,我们也可以把index.html也打包放入到内存中. 安装html-webpa ...