97. Interleaving String

ss
May 15, 2021

--

吐血 跟朋友練習, 有壓力下就做不太出來

沒壓力一個人就無師自通, 還不用提示

傻眼XD

用dp, 然後dp[i][j] 為 0…i, 與 0...j是否能成功找出interleaving string

class Solution {
public:
bool isInterleave(string s1, string s2, string s3) {
int m = s1.size();
int n = s2.size();
if(m + n != s3.size()) return false;
vector<vector<bool>> dp(m + 1, vector<bool>(n + 1, false));
for(int i = 0; i <= m;i++){
for(int j = 0; j <= n;j++){
if(i == 0 && j == 0){
dp[i][j] = true;
}else if (i == 0 && j != 0){
dp[i][j] = dp[i][j - 1] && (s2[j - 1] == s3[j - 1]);
}else if (j == 0 && i != 0){
dp[i][j] = dp[i - 1][j] && (s1[i - 1] == s3[i - 1]);
}else{
dp[i][j] = (dp[i - 1][j] && (s1[i- 1] == s3[i + j - 1])) || (dp[i][j - 1] && (s2[j - 1] == s3[i + j - 1])) ;
}
}
}
return dp[m][n];
}
};

--

--

ss
ss

No responses yet