DSH插件市场实战:四大案例拆解与高频报错排查
2026/10/15 12:07:24
给定两个字符串word1和word2,请返回将word1转换成word2所使用的最少操作数。
你可以对一个单词进行如下三种操作:
插入一个字符
删除一个字符
替换一个字符
第一行输入字符串word1。
第二行输入字符串word2。
输出最少操作数。
输入
text
horse ros
输出
text
3
说明
horse -> rorse(替换h为r)rorse -> rose(删除r)rose -> ros(删除e)
共 3 步。
cpp
#include <bits/stdc++.h> using namespace std; int main() { string a, b; cin >> a >> b; int n = a.size(), m = b.size(); vector<vector<int>> dp(n + 1, vector<int>(m + 1, 0)); for (int i = 0; i <= n; i++) dp[i][0] = i; for (int j = 0; j <= m; j++) dp[0][j] = j; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (a[i - 1] == b[j - 1]) { dp[i][j] = dp[i - 1][j - 1]; } else { dp[i][j] = 1 + min({dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]}); } } } cout << dp[n][m] << endl; return 0; }