字节跳动第四批笔试题

   日期:2020-07-15     浏览:108    评论:0    
核心提示:输入说明:第一行输入n代表队伍中的人数第二行输入队伍中每个人的身高(用空格隔开)比如输入:52 3 1 5 465 4 1 6 8 2输出说明:如果现在所在位置之前没有比自己身高高的,数值变为-1,如果现在所在位置之前有比自己身高高的,数值变为所在位置之前那个离自己最近的且比自己高的那个人的身高上例的输入对应输出:5-1 -1 3 -1 46-1 5 4 -1 -1 8```python# --*-- coding : utf-8 --*--def No1(k, ls):_字节跳动 笔试题2020年第四批

第一题:
输入说明:
第一行输入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)

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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服