72. Edit Distance
来源:互联网 发布:fc2的域名怎么设置 编辑:程序博客网 时间:2024/05/29 07:38
原网址为https://leetcode.com/problems/edit-distance/description/
一.题目
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
class Solution {public: int minDistance(string word1, string word2) { int len1 = word1.size() + 1; int len2 = word2.size() + 1; vector<vector<int> >edit(len1); for (int i = 0; i < len1; i++) { edit[i] = vector<int>(len2); } for (int j = 0; j < len2; j++) { edit[0][j] = j; } for (int i = 0; i < len1; i++) { edit[i][0] = i; } for (int i = 1; i < len1; i++) { for (int j = 1; j < len2; j++) { edit[i][j] = min(edit[i - 1][j] + 1, edit[i][j - 1] + 1, edit[i - 1][j - 1] + plusOneIfNotEqual(word1[i - 1], word2[j - 1])); } } return edit[len1 - 1][len2 - 1]; } int min(int a, int b, int c) { int m = a; m = m < b ? m : b; m = m < c ? m : c; return m; } int plusOneIfNotEqual(char a, char b) { return (a == b ? 0 : 1); }};
edit[i][j]表示字符串word1转换为字符串word2的edit distance,那么
当i == 0时, edit[0][j] = j
当j == 0 时, edit[i][0] = i
当i >= 1 && j >= 1时, edit[i][j] = min(edit[i - 1][j] + 1, edit[i][j - 1] + 1, edit[i - 1][j - 1] + plusOneIfNotEqual(word1[i - 1], word2[j - 1]));
min表示三个数的最小值,plusOneIfNotEqual表示如果输入a和b相等,就返回1,不等为0
阅读全文
0 0
- LeetCode 72. Edit Distance
- [LeetCode]72.Edit Distance
- LeetCode --- 72. Edit Distance
- [Leetcode] 72. Edit Distance
- [leetcode] 72.Edit Distance
- 72. Edit Distance
- [leetcode] 72.Edit Distance
- 72. Edit Distance
- Leetcode 72. Edit Distance
- 72. Edit Distance
- LeetCode 72. Edit Distance
- leetcode 72. Edit Distance
- LeetCode 72. Edit Distance
- Leetcode 72. Edit Distance
- 72. Edit Distance
- Leetcode:72. Edit Distance
- 【LeetCode】72. Edit Distance
- leetCode 72. Edit Distance
- python数据类型(一)
- 关于台湾旅游和日本旅游以及港澳台旅游的经验
- 【论文阅读】Fused Text Segmentation Network for Multi-oriented Scene Text Detection
- 如何更改Eclipse里java项目的JRE
- 算法第四版 用java实现由中序表达式转换为后续表达式
- 72. Edit Distance
- hdu 3657 Game(最小割,方格取数)
- 单片机系列(1)从第一行代码到跑马灯的制作
- TensorFlow学习笔记:1、TensorFlow快速下载与安装
- 页面跳转
- log4j2配合slf4j使用
- Python中的struct模块
- 电力系统--杆塔
- 提供对外接口时,要注意的地方