int getSimilarity(string str2, string str1) {
int len1 = str1.size(),len2 = str2.size();
vector<vector<int>> dp(len1 + 1,vector<int>(len2 + 1,0));
for(int i=1;i<=len1;++i) {
dp[i][0] = i;
}
for(int j = 1;j<=len2;++j) {
dp[0][j] = j;
}
for(int i=1;i<=len1;++i) {
for(int j=1;j<=len2;++j) {
//相同,啥也不做
if(str1[i-1] == str2[j-1]) {
dp[i][j] = dp[i-1][j-1];
}
else {
dp[i][j] = min (
dp[i][j-1] + 1,
min (
dp[i-1][j] + 1,
dp[i-1][j-1] + 1
)
);
}
}
}
return dp[len1][len2];
今晚(2021-06-11:19:00)小米笔试有朋友做了么?编程题第二题,用动态规划这样写为什么只能AC80%。很疑惑。有没有大佬解答一下。
这题和 leetcode72 题 应该是差不多的。
全部评论
(0) 回帖