最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

字節(jié)跳動(dòng)2019春招研發(fā)部分python編程題匯總

  發(fā)布時(shí)間:2020-04-26 10:37:12   作者:劍圣土豆   我要評(píng)論
這篇文章主要介紹了字節(jié)跳動(dòng)2019春招研發(fā)部分python編程題匯總,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1、萬萬沒想到之聰明的編輯

題目描述:

在這里插入圖片描述在這里插入圖片描述

題解:

雙指針法

按照題目要求的規(guī)則來編寫程序,不要忘記處理輸入和輸出

import sys
n=int(input())#讀第一行
for i in range(n):
    #s = list(input())
    s = list(sys.stdin.readline().strip())#讀一行的字符串,轉(zhuǎn)化為list
    k = 0 #每個(gè)循環(huán)都重新賦值。設(shè)置一個(gè)指針,檢查是否有重復(fù)
    for j in range(len(s)):
        s[k] = s[j]#賦值,如果有重復(fù),將后面的賦值給前面的
        k += 1 #不論什么情況都加1
        #下面處理重復(fù)的情況
        if k > 2 and s[k-3] == s[k-2] and s[k-2] == s[k-1]:#有3個(gè)連續(xù)的,去掉最后一個(gè)
            k-=1
        if k > 3 and s[k-4] == s[k-3] and s[k-2] == s[k-1]:#AABB,去掉最后一個(gè)
            k -= 1
    print(''.join(s[:k])) #對(duì)輸出進(jìn)行處理

2、萬萬沒想到之抓捕孔連順

題目描述:

在這里插入圖片描述 在這里插入圖片描述 在這里插入圖片描述

題解:

雙指針法

n, dist = map(int, input().split()) #n是建筑物數(shù)目,dist是兩個(gè)特工相距的最大距離
nums = list(map(int, input().split())) #列表nums存儲(chǔ)所有建筑物的坐標(biāo)(橫軸)
res = 0 #res埋伏方案數(shù)目
i = 0 #i為第一個(gè)特工的下標(biāo)
j = 2 #j為另外兩個(gè)特工最遠(yuǎn)位置的下標(biāo),因?yàn)橛腥齻€(gè)特工,所以j的下標(biāo)從2開始
while i < n-2:
    while j < n and nums[j] - nums[i] <= dist: #符合埋伏條件,繼續(xù)搜尋
        j += 1 #最后一次時(shí)會(huì)使j多加一次
    if j - 1 - i >= 2:
        num = j - i - 1 #num為C的底數(shù)
        res += num * (num - 1) // 2 #排列組合C(num,2)=num!/(num-2)!*2!
    i += 1
res= res%99997867
print(res)

3、雀魂啟動(dòng)!

題目描述:

在這里插入圖片描述 在這里插入圖片描述 在這里插入圖片描述

題解:

def IShepai(str):
    lenth=len(str)
    #能否劃空
    if lenth == 0:
        return True
    count1=str.count(str[0])
  # 沒出現(xiàn)過雀頭,且第一個(gè)數(shù)字出現(xiàn)的次數(shù) >= 2,去掉雀頭剩下的能不能和牌
    if lenth%3!=0 and count1>=2 and IShepai(str[2:])==True:
        return True
    # 如果第一個(gè)數(shù)字出現(xiàn)次數(shù) >= 3,去掉這個(gè)刻子后看剩下的能和牌
    if  count1 >= 3 and IShepai(str[3:])==True:
            return True
    # 如果存在順子,移除順子后剩下的能和牌
    if str[0] + 1 in str and str[0] + 2 in str:
        str1 = str[1:]
        str1.remove(str[0]+1)
        str1.remove(str[0]+2)
        if IShepai(str1) == True:
            return True
    # 以上條件都不滿足,則不能和牌
    return False
    
if __name__ == '__main__':
    a=list(map(int, input().split()))
    flag=0
    #遍歷所有可以抓到的牌看能不能胡牌
    for i in range(1,10):
        al=sorted(a + [i])
        #每個(gè)數(shù)字最多4張牌
        if al.count(i)>4:
            continue
        else:
            if IShepai(al) == True:
                flag=1
                print(i,end=" ")
    if flag==0:
        print(0)

4、特征提取

題目描述:

在這里插入圖片描述 在這里插入圖片描述

題解:

n = int(input()) # n代表測(cè)試用例的個(gè)數(shù)
while n > 0: 
    m = int(input()) # m代表視頻的幀數(shù)
    res = 1 #res代表最長(zhǎng)特征運(yùn)動(dòng)的長(zhǎng)度
    d = {} # 字典d記錄{貓咪的特征值(key),特征運(yùn)動(dòng)長(zhǎng)度(特征值連續(xù)出現(xiàn)的次數(shù))}
    for i in range(m):
        l = list(map(int , input().split())) # 每行代表一幀
        k = l[0] # 第一個(gè)數(shù)字是該幀的特征個(gè)數(shù)
        tmp_d = {}
        for j in range(k):
            index = l[2 * j + 1]* 10 + l[2 * j + 2] #兩個(gè)數(shù)字形成的特征值歸一化為index
            if index in d: # 此特征值出現(xiàn)在了上一幀中
                tmp_d[index] = d[index] + 1
                res = max(res, tmp_d[index]) # 更新res即最長(zhǎng)特征運(yùn)動(dòng)的長(zhǎng)度
            else:
                tmp_d[index] = 1
        d = tmp_d #及時(shí)更新字典d的內(nèi)容
    print(res)
    n -= 1

5、畢業(yè)旅行問題

題目描述:

在這里插入圖片描述 在這里插入圖片描述

題解:

import itertools
n = int(input()) #城市個(gè)數(shù)n(1<n≤20,包括北京)
L = [] #城市間的車票價(jià)錢 n行n列的矩陣 [n][n]
for i in range(n):
    L.append(list(map(int, input().split())))
 
def treaval(L, n):
    # 除起點(diǎn)之外的不同路線組合,假設(shè)起點(diǎn)為0號(hào)節(jié)點(diǎn)
    com = list(itertools.permutations(list(range(1, n)), n - 1))  #range函數(shù)返回的是一個(gè)可迭代對(duì)象,而不是列表類型, 所以打印的時(shí)候不會(huì)打印列表。
    spend = 9999  # 假設(shè)一開始花銷很大
    for j in range(len(com)): #len(com)是可選擇的路線種類數(shù)
        road = list(com.pop(0))# 獲取其中一種路線組合road列表之后就釋放,com是一個(gè)元組序列
        # 補(bǔ)全起點(diǎn)和終點(diǎn)(注意起點(diǎn)也是終點(diǎn),形成閉環(huán))此時(shí)road長(zhǎng)度為n+1
        road.append(0)#在列表末尾添加新的對(duì)象
        road.insert(0, 0)#將對(duì)象插入列表
        x = 0 # 當(dāng)前路線的花銷
        for i in range(n):
            x = x + L[road[i]][road[i + 1]]
        if x < spend:
            spend = x #更新最小花銷
    return spend
 
print(treaval(L, n))

只通過了33%

6、找零

在這里插入圖片描述 在這里插入圖片描述

題解:

動(dòng)態(tài)規(guī)劃

lyst = [64, 16, 4, 1] #硬幣列表(從大到小排列)
cost = 1024 - int(input())
res = 0 #最少得到的硬幣數(shù)量
for i in lyst:
    res += cost//i #取整除 - 返回商的整數(shù)部分(向下取整)
    cost %= i #取模 - 返回除法的余數(shù)
print(res)

7、機(jī)器人跳躍問題

題目描述:

在這里插入圖片描述 在這里插入圖片描述

題解:

import math
n = int(input())
arr = list(map(int, input().split()))
# 假設(shè)跳躍前能力為E,要跳的高度為H,那么跳躍后的能量就是E-(H-E)=2E-H,
# 那么跳躍后的能量加上高度就是跳躍前的兩倍,然后從后往前逆推。
E = 0    # 跳到最后一步的能力值設(shè)為0
arr.reverse()#翻轉(zhuǎn)列表逆推
for H in arr:
    E = math.ceil((E + H ) / 2) #向上取整,以此保證剩余能量大于等于0
print(E)

到此這篇關(guān)于字節(jié)跳動(dòng)2019春招研發(fā)部分python編程題匯總的文章就介紹到這了,更多相關(guān)字節(jié)跳動(dòng)2019內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

云南省| 余姚市| 天柱县| 凤阳县| 重庆市| 石河子市| 延庆县| 革吉县| 桂东县| 景宁| 宜州市| 绥化市| 洪雅县| 永吉县| 湖北省| 定襄县| 乾安县| 德化县| 天台县| 江西省| 红河县| 得荣县| 桂平市| 信阳市| 新乡市| 遵义县| 靖安县| 公主岭市| 什邡市| 普宁市| 安仁县| 青浦区| 贡山| 汽车| 邹平县| 获嘉县| 香格里拉县| 苏尼特右旗| 东平县| 山丹县| 满洲里市|