zoukankan      html  css  js  c++  java
  • 字节跳动2019春招研发部分编程题汇总

    第一题

    我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:
     
    1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello
    2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello
    3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优先考虑修复AABB,结果为AABCC
    我特喵是个天才!我在蓝翔学过挖掘机和程序设计,按照这个原理写了一个自动校对器,工作效率从此起飞。用不了多久,我就会出任CEO,当上董事长,迎娶白富美,走上人生巅峰,想想都有点小激动呢!
    ……
    万万没想到,我被开除了,临走时老板对我说: “做人做事要兢兢业业、勤勤恳恳、本本分分,人要是行,干一行行一行。一行行行行行;要是不行,干一行不行一行,一行不行行行不行。” 我现在整个人红红火火恍恍惚惚的……
    n = int(input())
    for i in range(n):
        s = input()
        t1= 1
        s1=''
        k = 0
        s1+=s[0]
        t0=0
        for j in range(1,len(s)):
            
            if s[j]==s1[k] and t0<2 and t1<2:
                s1+=s[j]
                k+=1
                t1+=1
    #            continue
            elif s[j]==s1[k] and t0>=2 and t1 == 1:
                continue    
            elif s[j]==s1[k] and t1>=2:
                continue    
            else:
                s1+=s[j]
                k+=1
                t0 = t1
                t1 = 1
        print(s1)
                
    

    4

    小明是一名算法工程师,同时也是一名铲屎官。某天,他突发奇想,想从猫咪的视频里挖掘一些猫咪的运动信息。为了提取运动信息,他需要从视频的每一帧提取“猫咪特征”。一个猫咪特征是一个两维的vector<x, y>。如果x_1=x_2 and y_1=y_2,那么这俩是同一个特征。
           因此,如果喵咪特征连续一致,可以认为喵咪在运动。也就是说,如果特征<a, b>在持续帧里出现,那么它将构成特征运动。比如,特征<a, b>在第2/3/4/7/8帧出现,那么该特征将形成两个特征运动2-3-4 和7-8。
    现在,给定每一帧的特征,特征的数量可能不一样。小明期望能找到最长的特征运动。
    n = int(input())
    m = int(input())
    for i in range(n):
        re=[]
        nums=[]
        max1 =0
        cur=[]
        for j in range(m):
            k = list(map(int,input().split()))
            n1 = k[0]
            for t in range(n1):
                if [k[t*2+1],k[t*2+2]] not in re:
                    re.append([k[t*2+1],k[t*2+2]])
                    nums.append(1)
                    cur.append(j)
                else:
                    if cur[re.index([k[t*2+1],k[t*2+2]])] ==j-1:
                        nums[re.index([k[t*2+1],k[t*2+2]])]+=1
                    else:
                        max1 = max(max1,nums[re.index([k[t*2+1],k[t*2+2]])])
                        nums[re.index([k[t*2+1],k[t*2+2]])] =1 
                    cur[re.index([k[t*2+1],k[t*2+2]])] = j
        print(max(max1,max(nums)))
    

      

    6

    Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为的商品,请问最少他会收到多少硬币?

    n = int(input())
    a=[1,4,16,64,1024]
    s=0
    j = len(a)-1
    n = 1024-n
    while(n!=0):
        t = n//a[j]
        
        n = n%a[j]
        #print(a[j],t)
        s+=t
        j-=1
    print(s)
    

    7

    机器人正在玩一个古老的基于DOS的游戏。游戏中有N+1座建筑——从0到N编号,从左到右排列。编号为0的建筑高度为0个单位,编号为i的建筑的高度为H(i)个单位。 
     
    起初, 机器人在编号为0的建筑处。每一步,它跳到下一个(右边)建筑。假设机器人在第k个建筑,且它现在的能量值是E, 下一步它将跳到第个k+1建筑。它将会得到或者失去正比于与H(k+1)与E之差的能量。如果 H(k+1) > E 那么机器人就失去 H(k+1) - E 的能量值,否则它将得到 E - H(k+1) 的能量值。
     
    游戏目标是到达第个N建筑,在这个过程中,能量值不能为负数个单位。现在的问题是机器人以多少能量值开始游戏,才可以保证成功完成游戏?
    n=  int(input())
    
    a = list(map(int,input().split()))
    j = 0
    t=[0]*n
    if a[0]%2==0:
        e =a[0]//2
    else:
        e =a[0]//2+1
    while True:
        k=e
        j=0
        while j<len(a) and k>=0:
            k = 2*k-a[j]
            j+=1
        if j==len(a) and k>=0:
            break
        e+=1
        
    print(e)
    

      

  • 相关阅读:
    Javascript进阶篇——(函数)笔记整理
    Javascript进阶篇——(流程控制语句)笔记整理
    Javascript进阶篇——(数组)笔记整理
    Javascript进阶篇——(JS基础语法)笔记整理
    Javascript基础学习笔记
    wamp安装
    JavaScript语法作业
    0721JS
    css复习内容
    盒子模型
  • 原文地址:https://www.cnblogs.com/SuckChen/p/13197136.html
Copyright © 2011-2022 走看看