一眼编辑距离,动态规划求解。
MarCode为什么不能自定义代码模板?每次都要手动引用库,using namespace std很麻烦。好在可以在线debug,比leetcode强多了,但是社区生态没力扣强啊。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int solution(std::string s, std::string t) {
// Please write your code here
int slen = s.size(), tlen = t.size();
if(tlen == 0) return slen;
if(slen == 0) return tlen;
vector<vector<int>> dp(slen + 1, vector<int>(tlen + 1, slen + 1));
for(int i = 0; i <= tlen; i ++) dp[0][i] = i;
for(int i = 0; i <= slen; i ++) dp[i][0] = i;
for(int i = 1; i <= slen; i ++){
for(int j = 1; j <= tlen; j ++){
if(s[i-1] == t[j-1]) dp[i][j] = dp[i-1][j-1];
else {
dp[i][j] = min(min(dp[i-1][j], dp[i][j-1]), dp[i-1][j-1]) + 1;
}
}
}
return dp[slen][tlen];
}
int main() {
// You can add more test cases here
std::cout << (solution("AGCTTAGC", "AGCTAGCT") == 2) << std::endl;
std::cout << (solution("AGCCGAGC", "GCTAGCT") == 4) << std::endl;
return 0;
}