72. Edit Distance 编辑距离

本文介绍了一种计算两个字符串之间编辑距离的算法,并提供了详细的实现步骤。编辑距离是指通过插入、删除或替换字符的方式将一个字符串转换成另一个字符串所需的最少操作次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)

You have the following 3 operations permitted on a word:

a) Insert a character
b) Delete a character
c) Replace a character

给定两个单词word1和word2,找到将word1转换为word2所需的最小步数。 (每个操作都算作1步。) 
你有一个单词允许以下3个操作: 
a)插入一个字符
b)删除一个字符 
c)替换一个字符


   /** * @param {string} word1 * @param {string} word2 * @return {number} */var minDistance = (word1, word2) => { let lenA = word1.length; let lenB = word2.length; let d = createMatrix(lenB + 1, lenA + 1); for (let i = 0; i <= lenA; i++) { d[i][0] = i; } for (let i = 0; i <= lenB; i++) { d[0][i] = i; } for (let i = 1; i <= lenA; i++) { for (let j = 1; j <= lenB; j++) { if (word1[i - 1] == word2[j - 1]) { d[i][j] = d[i - 1][j - 1]; } else { d[i][j] = Math.min(d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + 1); } } } return d[lenA][lenB];}let createMatrix = (rowNum, colNum) => { let matrix = []; matrix.length = colNum; for (let i = 0; i < matrix.length; i++) { matrix[i] = []; matrix[i].length = rowNum; matrix[i].fill(0); } return matrix}let a = "abcde";let b = "abcd";console.log(minDistance(a, b));
  







转载于:https://www.cnblogs.com/xiejunzhao/p/8306154.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值