字节跳动研发岗2019校招笔试(第二批)笔试题
- 格式:pdf
- 大小:134.61 KB
- 文档页数:6
一、题目描述1. 给定一个由0和1组成的01矩阵,其中0表示空地,1表示障碍物,现在要求从矩阵的左上角到右下角找到一条只能通过空地、不能穿越障碍物的路径,求出所有可能的路径数。
2. 给定如下矩阵:```0 1 00 0 10 0 0```3. 可以得到两条路径:(0,0) -> (0,1) -> (1,1) -> (2,1)和 (0,0) -> (1,0) -> (2,0) -> (2,1)4. 要求编写算法实现以上功能。
二、解题思路1. 可以使用深度优先搜索(DFS)算法来实现对该问题的解决。
首先从左上角的起点出发,依次尝试向右、向下移动,直到到达终点。
2. 在移动的过程中,需要不断判断当前位置是否为障碍物以及是否在矩阵范围内,对于合法的移动,将其标记为已访问,并继续向下一步递归搜索。
3. 当搜索到达右下角终点时,将当前路径计数器加一,并回溯到上一步继续尝试其他可能的移动路径,直到所有情况均遍历完毕。
三、算法实现1. 首先定义一个全局变量count用来记录路径数,以及一个辅助数组visited来标记已访问的位置。
2. 实现一个dfs函数,用来进行深度优先搜索。
函数参数包括当前位置、目标位置、01矩阵等信息。
3. 在dfs函数中,首先判断当前位置是否合法,若不合法则直接返回;若合法则将当前位置标记为已访问,并尝试向右、向下移动。
4. 当搜索到达终点时,将count计数器加一,并回溯到上一步继续尝试其他可能的移动路径。
5. 最终返回count作为结果。
四、代码实现```pythonclass Solution:def uniquePathsWithObstacles(self, obstacleGrid):m, n = len(obstacleGrid), len(obstacleGrid[0])count = 0visited = [[False] * n for _ in range(m)]def dfs(x, y):nonlocal countif x < 0 or y < 0 or x >= m or y >= n or obstacleGrid[x][y]== 1 or visited[x][y]:returnif x == m - 1 and y == n - 1:count += 1returnvisited[x][y] = Truedfs(x + 1, y)dfs(x, y + 1)visited[x][y] = Falsedfs(0, 0)return count```五、算法分析1. 该算法的时间复杂度为O(m*n),m和n分别为01矩阵的行数和列数。
题目11.世界杯开幕式会在球场C举行,球场C的球迷看台可以容纳M*N个球迷。
在球场售票完成后,现官方想统计此次开幕式一共有多少个球队球迷群体,最大的球队球迷群体有多少人。
经调研发现,球迷群体在选座时有以下特性:同球队的球迷群体会选择相邻座位,不同球队的球迷群体会选择不相邻的座位(注解:相邻包括前后相邻,左右相邻,斜对角相邻)给定一个M*N的二维球场,0代表该位置没有坐人,1代表该位置已有选择,希望输出球队群体个数P,最大的球队群体人数Q输入描述:第一行,2个数字,M及N,使用英文逗号分隔接下来M行,每行N的数字,使用英文逗号分隔输出描述:一行,2个数字,P及Q,使用英文逗号分隔其中P表示球队群体个数,Q表示最大的球队群体人数例:输入10,100,0,0,0,0,0,0,0,0,00,0,0,1,1,0,1,0,0,00,1,0,0,0,0,0,1,0,11,0,0,0,0,0,0,0,1,10,0,0,1,1,1,0,0,0,10,0,0,0,0,0,1,0,1,10,1,1,0,0,0,0,0,0,00,0,0,1,0,1,0,0,0,00,0,1,0,0,1,0,0,0,00,1,0,0,0,0,0,0,0,0输出:6,8题目22.为了提高文章质量,每一篇文章(假设全部都是英文)都会有m民编辑进行审核,每个编辑独立工作,会把觉得有问题的句子通过下表记录下来,比如[1,10],1表示病句的第一个字符,10表示病句的最后一个字符。
也就是从1到10着10个字符组成的句子,是有问题的。
现在需要把多名编辑有问题的句子合并起来,送个总编辑进行最终的审核。
比如编辑A指出的病句是[1,10],[32,45];编辑B指出的病句是[5,16],[78,94]那么[1,10]和[5,16]是有交叉的,可以合并成[1,16][32,45][78,94]输入描述:编辑数量m,之后每行是每个编辑的标记的下表组合,第一个和最后一个下标用英文逗号分隔,每组下标之间用分号分隔输出描述:合并后的下标集合,第一个和最后一个下标用英文逗号分隔,每组下标之间用分号分隔。
2023年字节跳动招聘笔试试题及答案第一题:算法题问题描述:给定一个数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。
输入:nums = [2, 7, 11, 15], target = 9输出:[0, 1]解释:因为 nums[0] + nums[1] = 2 + 7 = 9,所以返回 [0, 1]。
第二题:编程题问题描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
输入:"abcabcbb"输出:3解释:因为无重复字符的最长子串是 "abc",所以其长度为 3。
第三题:设计题问题描述:请设计一个音乐播放器的基本功能,包括以下要求:- 播放/暂停功能- 上一首/下一首功能- 设置音量功能回答:这个问题可以使用面向对象的方式进行设计。
可以创建一个名为“MusicPlayer”的类,其中包括以下方法:play_pause()- 作用:播放或暂停音乐- 参数:无- 返回值:无previous_track()- 作用:切换到上一首音乐- 参数:无- 返回值:无next_track()- 作用:切换到下一首音乐- 参数:无- 返回值:无set_volume(volume)- 作用:设置音量- 参数:volume (范围为0到100之间的整数)- 返回值:无这些方法可以提供音乐播放器的基本功能,并可以根据具体需求进行扩展。
以上就是2023年字节跳动招聘笔试试题及答案的内容。
希望对你有帮助!。
字节跳动笔试题字节跳动是一家全球领先的科技企业,致力于为用户提供丰富多样的内容和创新的技术应用。
在这次字节跳动笔试题中,我们将探讨一些与字节跳动相关的话题,包括其背景、产品和发展。
1. 字节跳动的背景介绍字节跳动成立于2012年,总部位于中国。
目前,它已经发展成为一家拥有全球化影响力的科技巨头。
字节跳动的使命是通过技术和内容的创新,为用户提供个性化的产品和服务。
不仅如此,字节跳动还致力于成为全球创作者和内容创造者的支持者,为他们提供一个展示自己才华的舞台。
2. 字节跳动的主要产品(1) 抖音:抖音是一款短视频分享社交平台。
它以其独特的算法和人工智能技术,将用户喜欢的视频推荐给他们。
抖音的用户群体庞大,覆盖了全球各个年龄段和兴趣爱好的人群。
(2) 今日头条:今日头条是一款个性化资讯类App。
它根据用户的兴趣和浏览历史,推送全球最新的新闻和热点话题。
通过不断优化算法,今日头条帮助用户高效获取他们感兴趣的内容。
(3) 抖音国际版:抖音国际版是为海外用户量身定制的短视频平台。
与中国版抖音相比,抖音国际版更注重本地化运营和适应用户文化差异的需求。
目前,抖音国际版已经在多个国家和地区取得了巨大的成功。
3. 字节跳动的创新技术字节跳动在创新技术方面取得了很大的突破。
其中,人工智能技术和大数据分析是字节跳动产品成功的关键。
通过对用户数据的收集和分析,字节跳动能够更好地了解用户需求,并提供个性化的服务。
此外,字节跳动还不断推出新的技术和功能,以保持其竞争优势。
4. 字节跳动的全球影响力字节跳动是一家拥有全球影响力的科技企业。
除了在中国市场占据重要地位之外,字节跳动的产品还在全球范围内取得了广泛的用户认可。
例如,抖音在一些国家和地区已成为最受欢迎的社交媒体平台之一。
此外,字节跳动也积极推广其产品,与全球各地的创作者和内容创造者合作,为他们提供展现才华的机会。
5. 字节跳动的未来发展字节跳动在不断发展壮大,未来的发展前景令人期待。
第1题:用C语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n)。
该函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
注意,作为公用库函数,请注意安全检查,注意处理内存区重合的情况。
第2题:已知一个字串由GBK汉字和ansi编码的数字字母混合组成,编写C语言函数实现从中去掉所有ansi编码的的数字和字母(包括大小写),要求在原字串上返回结果。
函数接口为:int filter_ansi(char* gbk_string)。
注:汉字的GBK编码范围是0x8140 - 0xFEFE第3题:芯片测试。
有2k块芯片,已知好芯片比坏芯片多。
请设计算法从其中找出一片好芯片,并说明你所用的比较次数上限。
其中:好芯片和其它芯片比较时,能正确给出另一块芯片是好还是坏;坏芯片和其它芯片比较时,会随机的给出好或是坏。
------------------------------------------------------------在这里填写答案:-------------------------------------------------第1题:用C语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n)。
该函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
注意,作为公用库函数,请注意安全检查,注意处理内存区重合的情况。
void* memmove(void * dest, const void * src, size_t n){void* temp = dest;if (dest <= src || (char *)dest >= ((char *)src + n)) //无内存地址重叠{while (n--){*(char *)dest = *(char *)src;dest = (char *)dest + 1;src = (char *)src + 1;}}else //有内存地址重叠{dest = (char *)dest + n - 1;src = (char *)src + n - 1;while (n--){*(char *)dest = *(char *)src;dest = (char *)dest - 1;src = (char *)src - 1;}}return (temp);}-------------------------------------------------第2题:已知一个字串由GBK汉字和ansi编码的数字字母混合组成,编写C语言函数实现从中去掉所有ansi编码的的数字和字母(包括大小写),要求在原字串上返回结果。
字节跳动笔试题今天做了字节跳动的笔试题,总得来讲题并不难,但是需要看懂题的意思,列出⾃⼰的思路再进⾏编程这样效率才⾼,之前⾯试腾讯暑期实习⽣就是太紧张了,⼤脑⼀⽚空⽩,也不知道先写写⾃⼰的思路,然后再进⾏编程,结果给pass掉了,想来还是很可惜的。
下⾯是字节跳动的笔试题:要求:输⼊数组长度,然后输⼊数组中的各个元素,最后输⼊整数K,要求找出数组中三个元素⼩于K的三个元素,例如: 输⼊数组长度:6 输⼊数组元素:-2、0、1、2、3、6 输出三元组:共4个下⾯给出思路和代码:"""思路:1、获得⽤户输⼊的数组长度n,若n不为整数,则提⽰错误。
2、创建数组。
3、获得⽤户输⼊的数组元素,如果元素个数超过数组长度n,则提⽰错误。
4、获取⽤户输⼊的整数k,如果⾮整数,则提⽰错误。
5、可以使⽤for循环来依次遍历,找到满⾜条件的三元组并记录下来。
6、输出满⾜条件的三元组的个数。
"""i = 0j = 0while True:# 1、获得⽤户输⼊的数组长度n, 若n不为整数,则提⽰错误。
try:n = int(input("请输⼊所需要创建的数组长度:"))except:print("请输⼊整数")continue# 2、创建数组。
arrs = []# 3、获得⽤户输⼊的数组元素,如果元素个数超过数组长度n,则提⽰错误。
while True:if i is not n:try:arr_data = int(input("请输⼊数组元素:"))except:print("请输⼊整数")continuearrs.append(arr_data)i = i+1else:breakprint(arrs)# 4、获取⽤户输⼊的整数k,如果⾮整数,则提⽰错误。
while True:try:k = int(input("请输⼊⼀个整数K:"))except:print("请输⼊整数")continuebreak# 5、可以使⽤for循环来依次遍历,找到满⾜条件的三元组并记录下来。
校招笔试题目校招笔试是让公司筛选应聘者的一种常见方式,通过笔试可以初步了解应聘者的基本知识和能力水平。
本文将介绍一些常见的校招笔试题目,帮助应聘者更好地备考。
一、选择题1. 下列选项中,不属于计算机内部硬件设备的是:A. 主板B. 显卡C. 鼠标D. 声卡2. 在Java中,以下哪个关键字用于定义一个类?A. publicB. staticC. classD. final3. 某公司在产品A上投入了5万元,预计每年销售收入为8万元,预计年均利润率为10%,那么预计在产品A达到成本平衡点需要销售多少万元?A. 50万元B. 80万元C. 100万元D. 200万元二、填空题1. TCP/IP协议中,IP地址是由______个字节组成的。
2. 计算机内存的基本存储单元是______。
3. 某个等差数列的首项为2,公差为3,前n项和为40,求n的值为______。
三、编程题1. 编写一个函数,输入一个整数数组和一个目标值,函数要在数组中找到两个数,它们的和等于目标值,并返回这两个数的索引。
例如,数组[2, 7, 11, 15],目标值为9,函数应该返回[0, 1]。
2. 编写一个程序,要求用户输入一个字符串,程序将字符串中的大写字母转换为小写字母,并将结果输出。
例如,用户输入"HelloWorld!",程序应该输出"hello world!"。
四、问答题1. 请简要说明面向对象编程(OOP)的特点及其优势。
2. 请解释TCP和UDP的区别和应用场景。
3. 请列举并简要介绍至少三种常见的排序算法。
以上是一些常见的校招笔试题目,通过这些题目的练习和思考,可以帮助应聘者提升自己的能力水平,并更好地应对校招笔试。
在备考过程中,不仅要注重知识的学习和理解,还要培养解决问题的能力和思维方式。
祝各位应聘者取得好成绩,顺利找到理想的工作!。
2019年字节跳动两道春招笔试题python解法(一)万万没想到之聪明的编辑我叫王大锤,是一家出版社的编辑。
我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。
但是,优秀的人总能在平凡的工作中发现真理。
我发现一个发现拼写错误的捷径:1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如helllo -> hello2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如helloo -> hello3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优先考虑修复AABB,结果为AABCC我特喵是个天才!我在蓝翔学过挖掘机和程序设计,按照这个原理写了一个自动校对器,工作效率从此起飞。
用不了多久,我就会出任CEO,当上董事长,迎娶白富美,走上人生巅峰,想想都有点小激动呢!……万万没想到,我被开除了,临走时老板对我说:“做人做事要兢兢业业、勤勤恳恳、本本分分,人要是行,干一行行一行。
一行行行行行;要是不行,干一行不行一行,一行不行行行不行。
”我现在整个人红红火火恍恍惚惚的……请听题:请实现大锤的自动校对程序输入描述:第一行包括一个数字N,表示本次用例包括多少个待校验的字符串。
后面跟随N行,每行为一个待校验的字符串。
输出描述:N行,每行包括一个被修复后的字符串。
输入例子:2helloowooooooow输出例子:hellowoow思路:遍历字符串,若符合判断条件则跳到下一次循环,不符合条件则将字符加到新字符串代码:n = int(input())for i in range(n):s = input()res = []for s0 in s:if len(res) < 2:res.append(s0)continueif len(res) >= 2:if s0 == res[-1] and s0 == res[-2]:continueif len(res) >= 3:if s0 == res[-1] and res[-2] == res[-3]:continueres.append(s0)print("".join(res))(二)万万没想到之抓捕孔连顺我叫王大锤,是一名特工。
字节算法笔试题在字节跳动的算法笔试中,通常会出现一些有趣且具有挑战性的题目。
本文将解答一些常见的字节算法笔试题,并提供相应的解题思路和代码实现。
1. 两数之和题目描述:给定一个整数数组和一个目标值,在数组中找出和为目标值的两个数。
解题思路:可以使用哈希表来解决该问题。
首先遍历数组,将每个元素与其索引存储在哈希表中。
然后再次遍历数组,对于每个元素,通过查找目标值与当前元素的差值是否存在于哈希表中来确定是否存在和为目标值的两个数。
代码实现:```pythondef twoSum(nums, target):hash_table = {}for i, num in enumerate(nums):complement = target - numif complement in hash_table:return [hash_table[complement], i]hash_table[num] = ireturn None```2. 最长回文子串题目描述:给定一个字符串,找到其中最长的回文子串。
解题思路:可以使用动态规划来解决该问题。
首先定义一个二维数组dp,其中dp[i][j]表示从索引i到j的子串是否为回文子串。
然后遍历字符串,对于每个字符,将dp[i][j]标记为True,当且仅当s[i]==s[j]且dp[i+1][j-1]为True。
同时记录最长的回文子串的起始位置和长度。
代码实现:```pythondef longestPalindrome(s):n = len(s)start, max_len = 0, 0dp = [[False] * n for _ in range(n)]for i in range(n):dp[i][i] = Truemax_len = 1for j in range(1, n):for i in range(j):if s[i] == s[j] and (j - i <= 2 or dp[i+1][j-1]):dp[i][j] = Trueif j - i + 1 > max_len:start = imax_len = j - i + 1return s[start:start+max_len]```3. 最长无重复子串题目描述:给定一个字符串,找到其中最长的无重复字符的子串。
2019字节跳动笔试题-校招短视频产品经理
2019字节跳动笔试题
- 岗位:校招短视频产品经理-
1.试着将知乎分别介绍给你的爸爸、妈妈并下载使用。
2.列举一款近两年出现的现象级产品,并从产品、运营和市场等方面进
行分析。
3.如果你是一个100W日活的UGC短视频APP产品经理,你觉得此时是
做分享视频打水印重要,还是优化播放器让视频播放更加顺畅重要?
4.从古老的BBS时代到web2.0的贴吧、豆瓣时代,再到移动互联网的各
个垂直社区时代,最后到虎牙、快手等平台的出现,你觉得内容社区主要发生了那些变化?可以从你深度使用过的产品展开讲解。
5.为2-10岁的儿童设计一款视频APP,写出设计思路和推广方式。
6.赵、钱、孙、李、周五人一起打乒乓球,每两人只比赛一局,统计比赛
的局数是:赵比赛了4局,钱比赛了3局,孙比赛了2局,李比赛了1局,那么周比赛了几局?
7.北京有一条1公里长的街道,你认为一天能收多少钱的停车费?
8.如果你的产品方案不被研发理解,不能如期进入开发,你会怎么做?。
字节跳动-研发岗2019笔试(第二批)
题目1
1.Bytedance Efficiency Engineering团队在8月20日搬入了学清嘉创大厦。
为了庆祝乔迁之喜,字节君决定邀请整个EE团队,举办一个大型团建游戏-字节跳动大闯关。
可是遇到了一个问题:EE团队共有n个人,大家都比较害羞,不善于与陌生人交流。
这n个人每个人都想字节君提供了自己认识的人的名字,不包括自己。
如果A的名单里有B,或B的名单里有A,则代表AB相互认识。
同时如果A认识B,B认识C,则代表A与C也会很快的认识,毕竟通过B的介绍,两个人就可以很快互相认识了。
为了大闯关游戏可以更好的团队协作、气氛更活跃,并使得团队中的人可以尽快的相互了解、认识和交流,字节君决定根据这个名单将团队分为m组,每组人数可以不同,但组内的任何一个人都与组内的其他所有人直接或间接的认识和交流。
如何确定一个方案,使得团队可以分成m组,并且这个m尽可能的小呢?
输入描述:
第一行一个整数n,代表有n个人,从1开始编号
接下来有n行,第x+1行代表编号为x的人认识的人的编号k(1<=k<=n),每个人的名单以0代表结束。
输出描述:
一个整数m,代表可以分的最小的组的个数。
示例
输入
10
530
840
90
90
30
790
970
输出
2
说明
1号同学孤独的自己一个组,他谁也不认识,也没有人认识他。
其他所有人均刻意直接或间接的认识,分在同一组。
题目2
2.我们定义合法的标识符为:数字0-9组成的字符串。
(可以包含多个前导0)
定义合法的表达式为:
若x为合法的标识符,则x为合法的表达式
若X为合法的表达式,则(X)为合法的表达式
若X和Y均为合法的表达式,则X+Y,X-Y均为合法的表达式
如,以下均合法的表达式:1,100,1+2,(10),1-(3-2)
以下为不合法的表达式:(,-1,1+-2
给定长度n,求长为n的合法表达式的数目。
长为n的合法表达式可能有非常多,你只需要输出结果对1000000007取模的余数即可。
输入描述:
一个整数n
输出描述:
长为n的合法表达式的数目对1000000007取模的余数
示例
输入
1
输出
10
题目3
3.双生词是指满足如下条件的两个字符串:(假设两个字符串分别为S和S’)
字符串长度相同
将字符串S收尾绕成环,再选一个位置切开,顺时针或逆时针能够得到字符串S’
容易得到,若s与S’为双生词,则s’与s也为双生词
给定一批仅有英文小写字母组成的字符串,询问他们之中是否存在双生词
输入描述:
首先给出测试组数t,表示一共有多少组数据
对于每组数据,第一行为一个整数n,表示一共有多少个字符串。
接下来n行,每行一个字符串输出描述:
对于每组数据,若存在双生词,输出Yeah。
若不存在双生词,输出Sad.
示例
输入
3
2
Helloworld
Hdlrowolle
2
Helloworld
Worldhello
2
Abcde
Acbde
输出
Yeah
Yeah
Sad
题目4
4.一天,小凯同学震惊的发现,自己屋内的PM2.5指标是有规律的!小凯采样了PM2.5的数值,发现PM2.5数值以小时为周期循环,即任意时刻的PM2.5总是和一小时前相等!他的室友小文同学提出了这样一个问题,在t小时内的所有采样点中,选取若干采样点的数值,能否找到一个PM2.5不曾下降过的序列?这个序列最长是多少?
输入描述:
第一行有两个整数n t表示每小时的采样点个数,和询问多少个小时的结果
第二行有n个整数,以空格分隔,表示一个小时内,每个采样点观测到的PM2.5的数值
示例:
输入
43
10375
输出
4
说明
3小时内所有采样点为
103751037510375
选取第2359个采样点,可以得到一个不曾下降过的序列
371010
使用其他的方法也可以得到长为4的满足条件的序列,但无法得到长度超过4的结果
题目5
5.已知一些形如”y=4-x”的约束关系,查询形如”y-x”的值
输入描述:
第一行为两个整数n,m,表示有n个已知的约束条件,有m个查询
接下来n行,形如”y=k-x”,表示约束条件y=k-x.其中等号和见好前后一定有空格。
Y与x是变量名,由英文小写字母组成,长度不超过4.k是一个偶数(注意可能为负,负数的负号后没有空格)
接下来的m行,形如”y-x”,表示查询y-x的值。
其中减号前后一定有空格。
Y与x是变量名,规则同上。
输入数据保证不会产生冲突,不会无解。
输出描述:
对于每个查询,输出一个整数,表示y-x的值
若输入数据不足以推导出结果,则输出”cannot_answer”
示例
输入
32
a=0–b
b=2-c
c=4-d
b-d
b-c
输出
-2
Cannot_answer。