当前位置: 移动技术网 > IT编程>脚本编程>Python > 字节跳动第四批笔试题

字节跳动第四批笔试题

2020年07月13日  | 移动技术网IT编程  | 我要评论

第一题:
输入说明:
第一行输入n代表队伍中的人数
第二行输入队伍中每个人的身高(用空格隔开)

比如输入:
5
2 3 1 5 4
6
5 4 1 6 8 2

输出说明:
如果现在所在位置之前没有比自己身高高的,数值变为-1,如果现在所在位置之前有比自己身高高的,数值变为所在位置之前那个离自己最近的且比自己高的那个人的身高

上例的输入对应输出:
5
-1 -1 3 -1 4
6
-1 5 4 -1 -1 8

# --*-- coding : utf-8 --*--
def No1(k, ls):
    if k == 0: return []

    res = [-1]
    if k == 1: return res
    res = []
    for i in range(k-1):
        temp = ls[i + 1:]

        #print(temp)
        #print(ls[i + 1:])

        if max(temp) <= ls[i]:
            res.append(-1)
        else:
            for j in temp:
                if j > ls[i]:
                    res.append(j)
                    break
    res.append(-1)                
    return res


if __name__ == '__main__':

    n = input()
    n = int(n)

    m = input().split(' ')
    m = list(map(int, m))
    m = list(reversed(m))
    #print(m)
    res1 = list(reversed(No1(n, m)))
    print(n)
    print(' '.join([str(x) for x in res1]))

思路:首先反转输入的列表,为什么反转是因为这样做就不是往前找比他大的值而是往后找比他大的数值了(注意别忘了转回来),从当前位置往后找比它大的值,找到了就赋值当前位置,然后break,找不到就赋值为-1,别忘了最后一个位置一定是-1。
第二题:
对于每组数据,如果A可以变成B,输出"Y",否则输出“N”。
输入:
3
0 1 2 3 4
2 1 0 4 3
0
0
0
1
输出
Y
Y
N

def No1(m,l):
    s='N'
    a=sorted(m)
    b=sorted(l)
    if a==b:
        s="Y"
    else:
        s="N"               
    return s


if __name__ == '__main__':
    n = input()
    n = int(n)
    s=[]    
    while n>0:
        m = input().split(' ')
        l = input().split(' ')
        m = list(map(int, m))
        l = list(map(int, l))
        a = No1(m,l)
        s.append(a)
        n-=1
    for i in s:        
        print(i)

这个题目比较简单
就是比较排序后的数组是否相同
第三题:
每组输入一行,分别是字符串S,T,如果有该子串则输出该子串,否则输出空串。
输入:ADSKBACWDWKDEH
输入:ABCD
输出:BACWD

# --*-- coding : utf-8 --*--
def minWindow(s,t):
    from collections import Counter
    t=Counter(t)
    lookup=Counter()
    start=0
    end=0
    min_len=float("inf")
    res=""
    while end<len(s):
        lookup[s[end]]+=1
        end+=1
        #print(start, end)
        while all(map(lambda x: lookup[x]>=t[x],t.keys())):
            if end-start<min_len:
                res=s[start:end]
                min_len=end-start
            lookup[s[start]]-=1
            start+=1
    return res
if __name__ == '__main__':

    S = input()
    T = input()
    L=minWindow(S,T)
    print(L)

整理不易,看官老爷们看完给个赞啊!
(不给也可以最好给个吧~在线卑微)

本文地址:https://blog.csdn.net/weixin_43518584/article/details/107296897

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网