2020春季百度筆試題1 自由組合字首字串數目

2021-10-03 21:35:31 字數 2525 閱讀 9300

這個題要求輸入:

n:串個數

m:串長度

後面是串的具體內容,

要求得到k字首的全部組合,k可以取1到m中任意值

例如輸入:

2

3abc

def

得到輸出:

8
當k=1,則得到aef和dbc,他們進行自由組合

當k=2, 則得到abf和dec,

注意:當有多個串時,可以進行任意組合,也就是複雜度n*n

並且新生成的串也可以進行組合!!

所以還能得到:

我就是在這裡懵了一會……

但是最後解出來了。

第一次,原本的字元得到的全部字首和字尾進行組合:

第二次,新得到的串進行組合:

所以最後得到8個組合,

其中最重要的就是字首和字尾去重,這個其實讓我想到字串匹配演算法,但是我並不記得那個演算法了,所以就用了普通的方法。

做了乙個簡化,就是只對新增加的片語進行新組合檢測,因為字首和字尾的組合之前在舊的片語裡出現過,舊的片語的組合固定了前字尾,直到新增加的片語數目為0為止,需要一直檢測增加組的組合。

例如輸入

2

5abcdf

eghij

則不論是原組整個組檢測還是增加組都有32種,沒有變多:

我感覺有幾個地方還可以簡化,但是沒有頭緒,

string=

input()

n=int

(string.split(

" ")[0

])m=int

(string.split(

" ")[1

])string=

# print(n,m)

for i in

range(0

,n):

input()

)#print(string[0][1])

strings=

add=

0adds=

for i in

range(1

,m+1):

front=

back=

k=ifor j in

range(0

,n):

str_front=string[j][0

:k]#print("str_front:"+str_front)

if str_front not

in front:

str_back=string[j]

[k:m]

#print("str_back:"+str_back)

if str_back not

in back:

# print(front,back)

for fro in front:

for bac in back:

str_add=fro+bac

if str_add not

in strings:

add+=

1# print(strings)

defzuhe

(strings,string)

: add=

0 adds=

for i in

range(1

,m+1):

front=

back=

k=ifor j in

range(0

,len

(string)):

str_front=string[j][0

:k]#print("str_front:"+str_front)

if str_front not

in front:

str_back=string[j]

[k:m]

#print("str_back:"+str_back)

if str_back not

in back:

# print(front,back)

for fro in front:

for bac in back:

str_add=fro+bac

if str_add not

in strings:

add+=

1return add,adds,strings

while

(add!=0)

:# print("---------------")

# print(adds)

add,adds,strings=zuhe(strings,adds)

print

(len

(strings)

)

百度2017春季招聘筆試題

題目 已知有n個點分布在三維空間,且各個點都有三種顏色中的一種,即 r g b 每次輸入格式為顏色和座標,要求計算組成的最大三角形的面積 另外該三角形需要滿足的條件是三個點要麼顏色完全相同,要麼完全不同。輸入示例 5 r 0 0 0 g 92 14 7 r 0 4 0 r 0 0 3 g 12 16...

百度筆試題1

1.假設乙個 搜尋引擎收錄了 2 24 首歌曲,並記錄了可收聽這些歌曲的 2 30 條 url,但每首歌的 url 不超過 2 10 個。系統會定期檢查這些 url,如果乙個 url 不可用則不出現在搜尋結果中。現在歌曲名和 url 分別通過整型的 song id 和 url id 唯一確定。對該系...

百度2017春季招聘筆試

題目 已知有n個點分布在三維空間,且各個點都有三種顏色中的一種,即 r g b 每次輸入格式為顏色和座標,要求計算組成的最大三角形的面積 另外該三角形需要滿足的條件是三個點要麼顏色完全相同,要麼完全不同。輸入示例 5 r 0 0 0 g 92 14 7 r 0 4 0 r 0 0 3 g 12 16...