美團2020筆試 字串的最長公共字首

2021-09-26 10:21:37 字數 1029 閱讀 2672

題目描述:

有最大長度十萬的多個字串。任意給兩個字串的編號,返回這兩個字串的最長公共字首長度。

輸入:第1行輸入乙個整數n,代表字串數量,n最大為10000;

第2~n+1行,每行乙個字串,字串長度最大為100000;

第n+2行開始,每行輸入兩個整數a和b,代表需要計算公共字首的字串編號。

輸出:返回a、b對應的字串的最長公共字首長度。如果a或b不是有效的字串編號,則對該行不輸出結果。

示例:4

abcdefg

acdef

acdfghijk

cdfg

1 22 3

3 4輸出:13

0n+2行開始的輸入行數不確定,當時不知道怎麼想的,非要把接收寫在迴圈條件裡,結果沒寫出來,一直報錯,竟然沒想到用while true,另乙個問題是按照題意應該對n,m的大小以及是否為合法數字進行判斷,但這道題的測試裡竟然沒有n,m非法的用例。

import sys

def string(s1, s2):

count = 0

if len(s1) < len(s2):

s1, s2 = s2, s1

for i, c in enumerate(s1):

if c == s2[i]:

count += 1

else:

break

return count

loop = int(sys.stdin.readline().strip())

arr =

for i in range(loop):

n = [str(x) for x in sys.stdin.readline().strip().split()]

while true:

m, n = [int(x) for x in sys.stdin.readline().strip().split()]

print(string(arr[m-1][0], arr[n-1][0]))

美團2020筆試 字串逆排序

題目描述 將以逗號分隔的輸入字串按z a的順序排序,空字元位於最前面,當乙個字串是另乙個字串的子串時,排在前面。import sys import operator def resort arr n len arr count 0 for i in range n if arr i arr i ar...

2018美團筆試字串問題

輸出對應的答案。in aab abaout 2in aaabb babout 5 題解 n o n o n include include include include include include include include include include include include ...

(美團網)兩個字串的最長公共子串

c i j 表示xi和yi的最大substring的長度,比如 x y c 1 1 1 c 2 2 2 c 3 3 0 c 4 4 1 動態轉移方程為 如果xi yj,則 c i j c i 1 j 1 1 如果xi yj,那麼c i j 0 最後求longest common substring的...