LintCode 29 交叉字串

2022-08-17 14:12:09 字數 942 閱讀 9685

目錄描述

給出三個字串:s1、s2、s3,判斷s3是否由s1和s2交叉構成。

您在真實的面試中是否遇到過這個題? 是

樣例

比如 s1 ="aabcc"s2 ="dbbca"

​ - 當 s3 ="aadbbcbcac",返回 true.

​ - 當 s3 ="aadbbbaccc", 返回 false.

挑戰

要求時間複雜度為o(n^2)或者更好

建立乙個(n+1)×(m+1)的dp陣列, dp[i][j]記錄長度為i的str1 與 長度為j的str2的字串能否構成長度為(i+j)的str3;

public class solution 

int n = s1.length(), m = s2.length(), nm = s3.length();

boolean dp = new boolean[n + 1][m + 1];

dp[0][0] = true;

// 初始化第一列, 此時str2為空串

for(int i = 1; i <= n; i++)

}// 初始化第一行, 此時str1為空串

for(int i = 1; i <= m; i++)

}for(int i = 1; i <= n; i++)

if(dp[i][j])

if(s2.charat(j-1) == s3.charat(i+j-1))}}

return dp[n][m];

}}

暫時不會,插個眼, 日後補充;

交叉字串 LintCode

給出三個字串 s1 s2 s3,判斷s3是否由s1和s2交叉構成。樣例 比如 s1 aabcc s2 dbbca 當 s3 aadbbcbcac 返回 true.當 s3 aadbbbaccc 返回 false.挑戰 要求時間複雜度為o n 2 或者更好 思路 先考慮特殊情況,s1為空直接比較s2和...

交叉字串

給出三個字串 s1 s2 s3,判斷s3是否由s1和s2交叉構成。樣例 比如 s1 aabcc s2 dbbca 當 s3 aadbbcbcac 返回 true.當 s3 aadbbbaccc 返回 false.dp i j k 代表 當到了s3的第i位時,s1的到了第j位 s2到了第k位。因為i是...

LintCode 翻轉字串

翻轉字串 給定乙個字串,逐個翻轉字串中的每個單詞。樣例 給出s the sky is blue 返回 blue is sky the 說明 單詞的構成 無空格字母構成乙個單詞 輸入字串是否包括前導或者尾隨空格?可以包括,但是反轉後的字元不能包括 如何處理兩個單詞間的多個空格?在反轉字串中間空格減少到...