目錄描述
給出三個字串: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 說明 單詞的構成 無空格字母構成乙個單詞 輸入字串是否包括前導或者尾隨空格?可以包括,但是反轉後的字元不能包括 如何處理兩個單詞間的多個空格?在反轉字串中間空格減少到...