位元組跳動2019兩道春招筆試題python解法

2021-09-24 18:32:20 字數 2797 閱讀 7254

(一)萬萬沒想到之聰明的編輯

1. 三個同樣的字母連在一起,一定是拼寫錯誤,去掉乙個的就好啦:比如 helllo -> hello

2. 兩對一樣的字母(aabb型)連在一起,一定是拼寫錯誤,去掉第二對的乙個字母就好啦:比如 helloo -> hello

3. 上面的規則優先「從左到右」匹配,即如果是aabbcc,雖然aabb和bbcc都是錯誤拼寫,應該優先考慮修復aabb,結果為aabcc

我特喵是個天才!我在藍翔學過挖掘機和程式設計,按照這個原理寫了乙個自動校對器,工作效率從此起飛。用不了多久,我就會出任ceo,當上董事長,迎娶白富美,走上人生巔峰,想想都有點小激動呢!

萬萬沒想到,我被開除了,臨走時老闆對我說: 「做人做事要兢兢業業、勤勤懇懇、本本分分,人要是行,幹一行行一行。一行行行行行;要是不行,幹一行不行一行,一行不行行行不行。」 我現在整個人紅紅火火恍恍惚惚的……

請聽題:請實現大錘的自動校對程式

輸入描述:

第一行包括乙個數字n,表示本次用例包括多少個待校驗的字串。

後面跟隨n行,每行為乙個待校驗的字串。

輸出描述:

n行,每行包括乙個被修復後的字串。
輸入例子:

2

helloo

wooooooow

輸出例子:

hello

woow

思路:

遍歷字串,若符合判斷條件則跳到下一次迴圈,不符合條件則將字元加到新字串

**:

n = int(input())

for i in range(n):

s = input()

res =

for s0 in s:

if len(res) < 2:

continue

if len(res) >= 2:

if s0 == res[-1] and s0 == res[-2]:

continue

if len(res) >= 3:

if s0 == res[-1] and res[-2] == res[-3]:

continue

print("".join(res))

(二)萬萬沒想到之抓捕孔連順

我叫王大錘,是一名**。我剛剛接到任務:在位元組跳動大街進行埋伏,抓捕****孔連順。和我一起行動的還有另外兩名**,我提議

1. 我們在位元組跳動大街的n個建築中選定3個埋伏地點。

2. 為了相互照應,我們決定相距最遠的兩名**間的距離不超過d。

我特喵是個天才! 經過精密的計算,我們從x種可行的埋伏方案中選擇了一種。這個方案萬無一失,顫抖吧,孔連順!

萬萬沒想到,計畫還是失敗了,孔連順化妝成小龍女,混在cosplay的隊伍中逃出了位元組跳動大街。只怪他的偽裝太成功了,就是楊過本人來了也發現不了的!

請聽題:給定n(可選作為埋伏點的建築物數)、d(相距最遠的兩名**間的距離的最大值)以及可選建築的座標,計算在這次行動中,大錘的小隊有多少種埋伏選擇。

注意:1. 兩個**不能埋伏在同一地點

2. 三個**是等價的:即同樣的位置組合(a, b, c) 只算一種埋伏方法,不能因「**之間互換位置」而重複使用

輸入描述:

第一行包含空格分隔的兩個數字 n和d(1 ≤ n ≤ 1000000; 1 ≤ d ≤ 1000000)

第二行包含n個建築物的的位置,每個位置用乙個整數(取值區間為[0, 1000000])表示,從小到大排列(將位元組跳動大街看做一條數軸)

輸出描述:

乙個數字,表示不同埋伏方案的數量。結果可能溢位,請對 99997867 取模
輸入例子:

4 3

1 2 3 4

輸出例子:

4
例子說明:

可選方案 (1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)
思路:

設定兩個指標,i指標為第乙個**的下標,j指標為另外兩個**最遠位置的下標,依次遍歷;根據排列組合,每個i指標對應的方案數為c(j-i,2),將所有方案數相加。

**:

n, dist = map(int, input().split())

nums = list(map(int, input().split()))

res = 0

i = 0

j = 2

while i < n-2:

while j < n and nums[j] - nums[i] <= dist:

j += 1 #最後一次時會使j多加一次

if j - 1 - i >= 2:

num = j - i - 1

res += num * (num - 1) // 2

i += 1

res= res%99997867

print(res)

2019春招筆試涼經 位元組跳動20190316

1.求找錢最少給幾個硬幣 有1024元錢 輸入你花掉的數目問找回的硬幣數最小 有64 16 4 1 的硬幣 res 1024 n cnt 0 while res 64 res 64 cnt 1 while res 16 res 16 cnt 1 while res 4 res 4 cnt 1 whi...

位元組跳動2019春招筆試第三題

具體題目不是很記得,大概如下 給出n個人,然後分別給出他們的成績 n個人成環狀 陣列首尾相連 每個人都至少有乙個獎牌 如果乙個人的成績比他左右兩人高,則他的獎牌要比其餘兩人多 求最少需要的獎牌 1.擴充套件陣列,首位相連 2.雙向遍歷,如果存在 分數比他後面的小,但是獎牌數比後面的大,調整後面的獎牌...

位元組跳動2019屆校招筆試題

1.世界盃開幕式會在球場c舉行,球場c的球迷看台可以容納m n個球迷。在球場售票完成後,現官方想統計此次開幕式一共有多少個球隊球迷群體,最大的球隊球迷群體有多少人。經調研發現,球迷群體在選座時有以下特性 同球隊的球迷群體會選擇相鄰座位,不同球隊的球迷群體會選擇不相鄰的座位 註解 相鄰包括前後相鄰,左...