国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

97. Interleaving String

2019-11-10 22:07:31
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

dfs: 題意就是s1和s2是否可以交叉變成s3,一開(kāi)始我使用dfs,但是超時(shí)了 然后剪枝,加入一個(gè)標(biāo)記數(shù)組,如果dfs過(guò)的就不進(jìn)行dfs,然后就ac了

class Solution {public: int mapp[500][500]; int mark = 0; void pipei(string s1, string s2, string s3, int a, int b, int c){ if(mark) return ; mapp[a][b] = 1; if(a + 1 == s1.length() && b == s2.length() && c + 1 == s3.length() && s1[a] == s3[c]){ mark = 1; return ; } else if(a == s1.length() && b + 1 == s2.length() && c + 1 == s3.length() && s2[b] == s3[c]){ mark = 1; return ; } else if(a < s1.length() && b < s2.length()){ if(s1[a] == s3[c] && !mapp[a + 1][b]) pipei(s1, s2, s3, a + 1, b, c + 1); if(s2[b] == s3[c] && !mapp[a][b + 1]) pipei(s1, s2, s3, a, b + 1, c + 1); } else if(a < s1.length()){ if(s1[a] == s3[c] && !mapp[a + 1][b]) pipei(s1, s2, s3, a + 1, b, c + 1); } else if(b < s2.length()){ if(s2[b] == s3[c] && !mapp[a][b + 1]) pipei(s1, s2, s3, a, b + 1, c + 1); } return ; } bool isInterleave(string s1, string s2, string s3) { if(s1.length() + s2.length() != s3.length()) return false; if(s1.length() == 0 && s2.length() == 0 && s3.length() == 0) return true; memset(mapp, 0, sizeof(mapp)); pipei(s1, s2, s3, 0, 0, 0); if(mark) return true; else return false; }};

dp: 其實(shí)這題應(yīng)該用dp,mapp (i,j)代表到s1 i 和s2 j都可以匹配,然后方程是 if(mapp[i - 1][j] && s1[i - 1] == s3[i + j - 1]) mapp[i][j] = true; if(mapp[i][j - 1] && s2[j - 1] == s3[i + j - 1]) mapp[i][j] = true; 十分好理解

class Solution {public: bool isInterleave(string s1, string s2, string s3) { if(s1.length() + s2.length() != s3.length()) return false; if(s1.length() == 0 && s2.length() == 0 && s3.length() == 0) return true; bool mapp[s1.length() + 1][s2.length() + 1]; memset(mapp, false, sizeof(mapp)); for(int i = 0; i <= s1.length(); ++ i) for(int j = 0; j <= s2.length(); ++ j){ if(i == 0 && j == 0) mapp[i][j] = true; else if(i == 0){ if(mapp[0][j - 1] && s2[j - 1] == s3[j - 1]) mapp[0][j] = true; } else if(j == 0){ if(mapp[i - 1][0] && s1[i - 1] == s3[i - 1]) mapp[i][0] = true; } else{ if(mapp[i - 1][j] && s1[i - 1] == s3[i + j - 1]) mapp[i][j] = true; if(mapp[i][j - 1] && s2[j - 1] == s3[i + j - 1]) mapp[i][j] = true; } } return mapp[s1.length()][s2.length()]; }};
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武山县| 高淳县| 静乐县| 杨浦区| 鄂托克旗| 永安市| 鄂托克前旗| 自贡市| 彭泽县| 易门县| 买车| 沁水县| 新郑市| 吴堡县| 义乌市| 武鸣县| 桐梓县| 和政县| 黄陵县| 自贡市| 桦南县| 方山县| 云南省| 丹阳市| 大荔县| 延边| 新郑市| 双桥区| 宽城| 威海市| 英超| 福清市| 桂阳县| 芦山县| 灯塔市| 余庆县| 安仁县| 凌海市| 沙洋县| 丰台区| 耒阳市|