牛客題霸 最長公共子串

2021-10-19 12:50:40 字數 901 閱讀 4823

題目描述

給定兩個字串str1和str2,輸出兩個字串的最長公共子串,如果最長公共子串為空,輸出-1。

示例1輸入

"1ab2345cd","12345ef"
返回值

"2345"
python**:

#

# longest common substring

# @param str1 string字串 the string

# @param str2 string字串 the string

# @return string字串

#class solution:

def lcs(self , str1 , str2 ):

# write code here

res = ''

ans = 0

dp = [[0 for _ in range(len(str2))] for _ in range(len(str1))]

for i in range(len(str1)):

for j in range(len(str2)):

if str1[i] == str2[j]:

if i - 1 < 0 or j - 1 < 0:

dp[i][j] = 0

else:

dp[i][j] = dp[i-1][j-1] + 1

else:

dp[i][j] = 0

ans = max(ans, dp[i][j])

if ans == dp[i][j]:

res = str1[i-ans+1:i+1]

if res == '':

return -1

return res

牛客刷題 最長公共子串

題目 給定兩個字串str1和str2,輸出兩個字串的最長公共子串,如果最長公共子串為空,輸出 1。輸入 1ab2345cd 12345ef 輸出 2345 看完題目想到了用動歸,剛開始分析的時候想著,對於每兩個元素的比較,有兩種情況,1.元素相同,那麼當前元素能夠成的最長公共子串的長度為上乙個的 1...

牛客題霸 研發 NC127 最長公共子串

本題鏈結 給定兩個字串str1和str2,輸出兩個字串的最長公共子串,如果最長公共子串為空,輸出 1。輸入 1ab2345cd 12345ef 返回值 2345 動態規劃問題 假設兩個字串長度為n m,具體分析其問題 最優子結構 如果知道 n 1 m 1 長度字串的最長公共子串s,則 n m 長度字...

牛客題霸 最長公共字首 C 題解 答案

牛客題霸 最長公共字首 c 題解 答案 編寫乙個函式來查詢字串陣列中的最長公共字首。原本想暴力做,直接多層迴圈套,發現並不用 注意本題,給出了多組字串,求它們的最長公共字首,這可怎麼辦?因為是最長公共字首,也就是所有字串都有 我們先將所有字串排序,越近的字串最長公共字首越多,反而越遠就越少 所以我們...