做药物分析必须知道的网站,最新网站信息,跨境网站开发,温州百度快速排名优化1. 题目
字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串#xff0c;编写一个函数判定它们是否只需要一次(或者零次)编辑。
示例 1:
输入:
first pale
second ple
输出: True示例 2:
输入:
first pa…1. 题目
字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串编写一个函数判定它们是否只需要一次(或者零次)编辑。
示例 1:
输入:
first pale
second ple
输出: True示例 2:
输入:
first pales
second pal
输出: False来源力扣LeetCode 链接https://leetcode-cn.com/problems/one-away-lcci 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
请参考我的博客编辑距离
class Solution {
public:bool oneEditAway(string a, string b) {int m a.size(), n b.size(), i, j;if(abs(m-n) 2)return false;if(m0 || n0)return true;vectorvectorint dp(m,vectorint(n,0));//初始化第一行第一列的编辑距离for(j 0; j n; j){if(a[0]b[j]) dp[0][j] j;else if(j ! 0) dp[0][j] 1dp[0][j-1];else dp[0][j] 1;}for(i 0; i m; i){if(a[i]b[0]) dp[i][0] i;else if(i ! 0) dp[i][0] 1dp[i-1][0];else dp[i][0] 1;}//填写状态表for(i 1; i m; i){for(j 1; j n; j){if(a[i] b[j])dp[i][j] min(dp[i-1][j-1],dp[i-1][j]1,dp[i][j-1]1);elsedp[i][j] min(1dp[i-1][j-1],dp[i-1][j]1,dp[i][j-1]1);}}return (dp[m-1][n-1] 2);}int min(int x, int y, int z){int m INT_MAX;if(x m) m x;if(y m) m y;if(z m) m z;return m;}
};