亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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 #每個循環(huán)都重新賦值。設置一個指針,檢查是否有重復
    for j in range(len(s)):
        s[k] = s[j]#賦值,如果有重復,將后面的賦值給前面的
        k += 1 #不論什么情況都加1
        #下面處理重復的情況
        if k > 2 and s[k-3] == s[k-2] and s[k-2] == s[k-1]:#有3個連續(xù)的,去掉最后一個
            k-=1
        if k > 3 and s[k-4] == s[k-3] and s[k-2] == s[k-1]:#AABB,去掉最后一個
            k -= 1
    print(''.join(s[:k])) #對輸出進行處理

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

題目描述:

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

題解:

雙指針法

n, dist = map(int, input().split()) #n是建筑物數(shù)目,dist是兩個特工相距的最大距離
nums = list(map(int, input().split())) #列表nums存儲所有建筑物的坐標(橫軸)
res = 0 #res埋伏方案數(shù)目
i = 0 #i為第一個特工的下標
j = 2 #j為另外兩個特工最遠位置的下標,因為有三個特工,所以j的下標從2開始
while i < n-2:
    while j < n and nums[j] - nums[i] <= dist: #符合埋伏條件,繼續(xù)搜尋
        j += 1 #最后一次時會使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、雀魂啟動!

題目描述:

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

題解:

def IShepai(str):
    lenth=len(str)
    #能否劃空
    if lenth == 0:
        return True
    count1=str.count(str[0])
  # 沒出現(xiàn)過雀頭,且第一個數(shù)字出現(xiàn)的次數(shù) >= 2,去掉雀頭剩下的能不能和牌
    if lenth%3!=0 and count1>=2 and IShepai(str[2:])==True:
        return True
    # 如果第一個數(shù)字出現(xiàn)次數(shù) >= 3,去掉這個刻子后看剩下的能和牌
    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])
        #每個數(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代表測試用例的個數(shù)
while n > 0: 
    m = int(input()) # m代表視頻的幀數(shù)
    res = 1 #res代表最長特征運動的長度
    d = {} # 字典d記錄{貓咪的特征值(key),特征運動長度(特征值連續(xù)出現(xiàn)的次數(shù))}
    for i in range(m):
        l = list(map(int , input().split())) # 每行代表一幀
        k = l[0] # 第一個數(shù)字是該幀的特征個數(shù)
        tmp_d = {}
        for j in range(k):
            index = l[2 * j + 1]* 10 + l[2 * j + 2] #兩個數(shù)字形成的特征值歸一化為index
            if index in d: # 此特征值出現(xiàn)在了上一幀中
                tmp_d[index] = d[index] + 1
                res = max(res, tmp_d[index]) # 更新res即最長特征運動的長度
            else:
                tmp_d[index] = 1
        d = tmp_d #及時更新字典d的內(nèi)容
    print(res)
    n -= 1

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

題目描述:

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

題解:

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

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

題解:

動態(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、機器人跳躍問題

題目描述:

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

題解:

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

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

相關文章

最新評論