2020字节跳动春招笔试编程题

字节跳动编程题目第一题

题目的内容大意是:
对于两个长度为n的数组a,b。通过某种操作将a数组变成为b数组。这个操作就是:从L-R区间段为每个数字都加上相同的值k。
其中:1<=L<=R<=n,k>=0;
输入描述:首先输入一个数字t,表示有t组数据,每组数据的第一行为一个数字n表示数组的长度,接下来两行,每行有n个数字,分别为数组a和数组b。
输入实例:

2
6
3 7 1 4 1 2
3 7 3 6 3 2
6
1 1 1 1 1 1
1 2 1 1 3 1

输出描述: 对于每组数据输出YES或者NO,表示数组a能否通过对应的操作变成数组b。

YES
NO

题目不难,按照题目步骤一步一步来就可以了。把a和b对应位置相减得到的差用序列存储,一旦序列中出现3种及以上不同的差值时(即除了0以外还有至少两种不同差值)直接输出“NO”,当只有两种差值时要考虑除0以外的差值是否相连,如果不相连则判定为“NO”,反之为“YES”对于只有一种差值直接判定为“YES”代码如下:

t = eval(input())
t = 3*t
a = []
b = []
d = []
l1 = []
l2 = []
for i in range(t):
    a.append(input())
for i in range(len(a)):
    if len(a[i]) > 1:
        b.append(a[i])
for i in range(0,len(b),2):
    a1 = b[i].split(" ")
    a2 = b[i+1].split(" ")
    for j in a1:
        l1.append(int(j))
    for k in a2:
        l2.append(int(k))
    c = list(map(lambda x: x[0]-x[1],zip(l2,l1)))
    d.append(c)
    l1 = []
    l2 = []

l5 = []
for i in d:
    l3 = ""
    l4 = []
    if len(set(i)) == 1:
        print("YES")
    elif len(set(i)) == 2:
        for j in i:
            l3 += str(j)
        l5 = l3.split("0")
        for k in l5:
            if len(k) != 0:
                l4.append(k)
        if len(l4) == 1:
            print("YES")
        else:
            print("NO")
    else:
        print("NO")

总的来说题目不难,不过自己还是花了好一段时间才通过,还要加油。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2023年3月11日,美团春季招聘笔试中共包含五道编程题目。以下是对每道题目的简要说明: 1. 题目一:这道题目要求解决一个数字统计的问题。可能涉及到的知识点包括数据结构、循环和条件判断等。解决问题的思路可能是使用字典等数据结构来保存统计结果,并使用循环逐个读取输入数据并进行统计。 2. 题目二:这道题目可能是一个字符串处理的问题。需要使用字符串的方法进行操作,如提取、拼接、查找和替换等。可能的解决思路包括使用正则表达式、切片和遍历等。 3. 题目三:这道题目可能涉及到算法和数据结构的知识。可能是一道涉及到数组、链表、树等数据结构的问题。解决思路可能包括遍历、递归、搜索和排序等。 4. 题目四:这道题目可能是一个动态规划的问题。需要根据给定的条件和规则,通过动态规划的方式求解问题。解决思路包括定义状态和转移方程,使用递推或记忆化搜索进行求解。 5. 题目五:这道题目可能是一个图论或网络问题。需要根据给定的图或网络结构,解决一个相关的问题。可能涉及到广度优先搜索、深度优先搜索、最短路径等知识。解决思路可能包括使用图或网络的相关算法进行求解。 以上只是对这五道编程题目的一些可能情况进行的简要描述,具体的题目内容可能会有所不同。希望这些信息能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值