題目描述:
有最大長度十萬的多個字串。任意給兩個字串的編號,返回這兩個字串的最長公共字首長度。
輸入:第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的...