字节跳动笔试题及参考答案(技术岗+非技术岗).docxVIP

字节跳动笔试题及参考答案(技术岗+非技术岗).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

字节跳动笔试题及参考答案(技术岗+非技术岗)

一、技术岗笔试题(编程+算法)

1.编程题:世界杯开幕式观众区域统计(8方向连通)

题目描述:

给定一个M行N列的二维矩阵,其中1表示观众,0表示空座位。观众区域定义为8个方向(上下左右+对角线)连通的1的集合。请计算观众区域的数量,以及最大观众区域的人数。

输入格式:第一行输入M,N(用逗号分隔),后续M行每行输入N个数字(用逗号分隔)。

输出格式:输出区域数量和最大区域人数(用逗号分隔)。

示例输入:

3,3

1,1,0

1,0,1

0,1,1

示例输出:2,4

参考答案(Python):

#输入处理(修复原代码语法错误,优化可读性)

M,N=map(int,input().split(,))

grid=[]

for_inrange(M):

line=list(map(int,input().split(,)))

grid.append(line)

classSolution:

def__init__(self,grid):

self.grid=grid

self.rows=M

self.cols=N

self.areas=[]#存储每个区域的人数

defdfs(self,i,j):

#边界判断+已访问判断

ifi0ori=self.rowsorj0orj=self.cols:

return0

ifself.grid[i][j]!=1:

return0

#标记已访问

self.grid[i][j]=0

#8方向递归搜索

count=1

count+=self.dfs(i-1,j)#上

count+=self.dfs(i+1,j)#下

count+=self.dfs(i,j-1)#左

count+=self.dfs(i,j+1)#右

count+=self.dfs(i-1,j-1)#左上

count+=self.dfs(i-1,j+1)#右上

count+=self.dfs(i+1,j-1)#左下

count+=self.dfs(i+1,j+1)#右下

returncount

defsolve(self):

foriinrange(self.rows):

forjinrange(self.cols):

ifself.grid[i][j]==1:

area_size=self.dfs(i,j)

self.areas.append(area_size)

ifnotself.areas:

return0,0

returnlen(self.areas),max(self.areas)

#执行计算

s=Solution(grid)

area_count,max_area=s.solve()

print(f{area_count},{max_area})

解题思路:

用深度优先搜索(DFS)遍历每个未访问的观众(1),递归探索8个方向的连通节点,统计每个区域的人数,最终返回区域总数和最大区域人数。核心是标记已访问节点避免重复计算,8方向遍历覆盖所有连通情况。

2.算法题:最长完美字符串

题目描述:

给定长度为n的小写字母字符串,允许修改m个位置的字符,要求选取连续子串,使其仅包含一种字母(完美字符串),求最长完美字符串的长度。

输入格式:第一行n,m,第二行字符串。

示例输入:81;aabaabaa→输出:5

解题思路(双指针+滑动窗口):

n,m=map(int,input().split())

s=input().strip()

max_len=0

#遍历26个小写字母,分别计算以该字母为目标的最长子串

forcin

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档