【ALGO】Leetcode 97.交錯字串
題面
原題連結
給定三個字串 s1、s2、s3,請你幫忙驗證 s3 是否是由 s1 和 s2 交錯 組成的。
兩個字串 s 和 t 交錯 的定義與過程如下,其中每個字串都會被分割成若干 非空 子字串:
s = s1 + s2 + … + sn
t = t1 + t2 + … + tm
|n - m| <= 1
交錯 是 s1 + t1 + s2 + t2 + s3 + t3 + … 或者 t1 + s1 + t2 + s2 + t3 + s3 + …
提示:a + b 意味著字串 a 和 b 連線。
解析
使用DP
求解,令
f
[
i
]
[
j
]
f[i][j]
f[i][j]表示所有由
s
1
[
1
∼
i
]
s1[1\sim i]
s1[1∼i]和
s
2
[
1
∼
j
]
s2[1\sim j]
s2[1∼j]交錯形成
s
3
[
1
∼
i
+
j
]
s3[1\sim i+j]
s3[1∼i+j]的方案,狀態計算時關鍵判斷
s
3
[
i
+
j
]
s3[i+j]
s3[i+j]的字元的來源為
s
1
s1
s1還是
s
2
s2
s2
AC程式碼
class Solution {
public:
bool isInterleave(string s1, string s2, string s3) {
int n=s1.size(), m=s2.size();
if(s3.size()!=n+m) return false;
bool f[n+1][m+1];
memset(f, 0x00, sizeof f);
s1=' '+s1, s2=' '+s2, s3=' '+s3;
for(int i=0; i<=n; ++i)
for(int j=0; j<=m; ++j)
if(!i && !j) f[i][j]=true;
else{
if(i && s1[i]==s3[i+j]) f[i][j]=f[i-1][j];
if(j && s2[j]==s3[i+j]) f[i][j]|=f[i][j-1];
}
return f[n][m];
}
};
相關文章
- LeetCode-097-交錯字串LeetCode字串
- 【ALGO】Leetcode 85.最大矩形GoLeetCode
- 【ALGO】Leetcode 91.解碼方法GoLeetCode
- 交錯陣列陣列
- 【ALGO】Leetcode 98.驗證二叉搜尋樹GoLeetCode
- vue的列表交錯過渡Vue
- leetcode:字串相乘(java)LeetCode字串Java
- 《STL原始碼剖析》 -- stl_algo.h原始碼Go
- CSS文字交錯滑動效果-001CSS
- leetcode 87 擾亂字串LeetCode字串
- LeetCode 394 字串解碼LeetCode字串
- LeetCode-043-字串相乘LeetCode字串
- 【LeetCode】Word Ladder 字串LeetCode字串
- 第七章——字串(字串除錯)字串除錯
- SQLSERVER 語句交錯引發的死鎖研究SQLServer
- 如何解決MDB交錯寫log的問題
- 【題解】A18536.星光交錯的律動
- [Leetcode]394.字串解碼LeetCode字串
- 【LeetCode】796. 旋轉字串LeetCode字串
- LeetCode初級-反轉字串LeetCode字串
- LeetCode-344-反轉字串LeetCode字串
- LeetCode-415-字串相加LeetCode字串
- LeetCode 567. 字串的排列LeetCode字串
- leetcode —— 字串相關(28、344)LeetCode字串
- 程式設計師與「中臺」的愛恨交錯程式設計師
- LeetCode 205. 同構字串LeetCode字串
- LeetCodet探索——陣列與字串LeetCode陣列字串
- 【LeetCode】初級演算法:字串LeetCode演算法字串
- LeetCode-824. Goat Latin(字串分割)LeetCodeGo字串
- 【LeetCode 28_字串_匹配】Implement strStr()LeetCode字串
- 網頁設計靈感:影象遮罩、混合模式、交錯排版網頁遮罩模式
- dimp時報錯,字串截斷字串
- LeetCode-459-重複的子字串LeetCode字串
- 每日一道Leetcode——上升下降字串LeetCode字串
- LeetCode-8. 字串轉整數 (atoi)LeetCode字串
- WEB前端優化:使用“漸進”圖片或“交錯”圖片Web前端優化
- leetcode 1525 字串的好分割數目(雜湊表,字串分割)LeetCode字串
- 【leetcode】28. Implement strStr() 字串匹配KMP BMLeetCode字串匹配KMP