1. 程式人生 > >【位元組跳動】19校招研發崗位第二次線上筆試(純乾貨~~~)

【位元組跳動】19校招研發崗位第二次線上筆試(純乾貨~~~)

1.Bytedance Efficiency Engineering團隊在8月20日搬入了學清嘉創大廈。為了慶祝喬遷之喜,位元組君決定邀請整個EE團隊,舉辦一個大型團建遊戲-位元組跳動大闖關。可是遇到了一個問題:EE團隊共有n個人,大家都比較害羞,不善於與陌生人交流。這n個人每個人都想位元組君提供了自己認識的人的名字,不包括自己。如果A的名單裡有B,或B的名單裡有A,則代表AB相互認識。同時如果A認識B,B認識C,則代表A與C也會很快的認識,畢竟通過B的介紹,兩個人就可以很快互相認識了。

為了大闖關遊戲可以更好的團隊協作、氣氛更活躍,並使得團隊中的人可以儘快的相互瞭解、認識和交流,位元組君決定根據這個名單將團隊分為m組,每組人數可以不同,但組內的任何一個人都與組內的其他所有人直接或間接的認識和交流。如何確定一個方案,使得團隊可以分成m組,並且這個m儘可能的小呢?

輸入描述:

第一行一個整數n,代表有n個人,從1開始編號

接下來有n 行,第x+1行代表編號為x 的人認識的人的編號k(1<=k<=n),每個人的名單以0代表結束。

輸出描述:

一個整數m,代表可以分的最小的組的個數。

示例

輸入

10

0

5 3 0

8 4 0

9 0

9 0

3 0

0

7 9 0

0

9 7 0

輸出

2

說明

1號同學孤獨的自己一個組,他誰也不認識,也沒有人認識他。其他所有人均刻意直接或間接的認識,分在同一組。

2.我們定義合法的識別符號為:數字0-9組成的字串。(可以包含多個前導0)

定義合法的表示式為:

  1. 若x為合法的識別符號,則x為合法的表示式
  2. 若X為合法的表示式,則(X)為合法的表示式
  3. 若X和Y均為合法的表示式,則X+Y,X-Y均為合法的表示式

如,以下均合法的表示式:1,100,1+2,(10),1-(3-2)

以下為不合法的表示式:(,-1,1+-2

給定長度n,求長為n的合法表示式的數目。長為n的合法表示式可能有非常多,你只需要輸出結果對1000000007取模的餘數即可。

輸入描述:

一個整數n

輸出描述:

長為n的合法表示式的數目對1000000007取模的餘數

示例

輸入

1

輸出

10

3.雙生詞是指滿足如下條件的兩個字串:(假設兩個字串分別為S和S’)

  1. 字串長度相同
  2. 將字串S收尾繞成環,再選一個位置切開,順時針或逆時針能夠得到字串S’

容易得到,若s與S’為雙生詞,則s’與s也為雙生詞

給定一批僅有英文小寫字母組成的字串,詢問他們之中是否存在雙生詞

輸入描述:

首先給出測試組數t,表示一共有多少組資料

對於每組資料,第一行為一個整數n,表示一共有多少個字串。接下來n行,每行一個字串

輸出描述:

對於每組資料,若存在雙生詞,輸出Yeah。若不存在雙生詞,輸出Sad.

示例

輸入

3

2

Helloworld

Hdlrowolle

2

Helloworld

Worldhello

2

Abcde

Acbde

輸出

Yeah

Yeah

Sad

4.一天,小凱同學震驚的發現,自己屋內的PM2.5指標是有規律的!小凱取樣了PM2.5的數值,發現PM2.5數值以小時為週期迴圈,即任意時刻的PM2.5總是和一小時前相等!他的室友小文同學提出了這樣一個問題,在t小時內的所有采樣點中,選取若干取樣點的數值,能否找到一個PM2.5不曾下降過的序列?這個序列最長是多少?

輸入描述:

第一行有兩個整數n t 表示每小時的取樣點個數,和詢問多少個小時的結果

第二行有n個整數,以空格分隔,表示一個小時內,每個取樣點觀測到的PM2.5的數值

示例:

輸入

4   3

10   3   7  5

輸出

4

說明

3小時內所有采樣點為

10  3  7  5  10  3  7  5  10  3  7  5

選取第2 3 5 9個取樣點,可以得到一個不曾下降過的序列

3  7  10  10

使用其他的方法也可以得到長為4的滿足條件的序列,但無法得到長度超過4的結果

5.已知一些形如”y=4-x”的約束關係,查詢形如”y-x”的值

輸入描述:

第一行為兩個整數n,m,表示有n個已知的約束條件,有m個查詢

接下來n行,形如”y=k-x”,表示約束條件y=k-x.其中等號和見好前後一定有空格。Y與x是變數名,由英文小寫字母組成,長度不超過4.k是一個偶數(注意可能為負,負數的負號後沒有空格)

接下來的m行,形如”y-x”,表示查詢y-x的值。其中減號前後一定有空格。Y與x是變數名,規則同上。

輸入資料保證不會產生衝突,不會無解。

輸出描述:

對於每個查詢,輸出一個整數,表示y-x的值

若輸入資料不足以推匯出結果,則輸出”cannot_answer”

示例

輸入

3  2

a = 0 – b

b = 2-c

c=4-d

b-d

b-c

輸出

-2

Cannot_answer