【leetcode】Edit Distance
来源:互联网 发布:股东人数查询软件 编辑:程序博客网 时间:2024/05/16 13:54
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
Accept: 12ms
int dp[1000][1000];int findDist(char *word1, size_t len1, char *word2, size_t len2) { if (dp[len1][len2] != 0) { return dp[len1][len2]; } if (*word1 == '\0') { dp[0][len2] = len2; return dp[0][len2]; } else if (*word2 == '\0') { dp[len1][0] = len1; return dp[len1][0]; } if (*word1 == *word2) { dp[len1][len2] = findDist(word1+1, len1-1, word2+1, len2-1); return dp[len1][len2]; } // REPLACE int d1 = 1 + findDist(word1+1, len1-1, word2+1, len2-1); // DELETE int d2 = 1 + findDist(word1+1, len1-1, word2, len2); // INSERT int d3 = 1 + findDist(word1, len1, word2+1, len2-1); int m = d1; if (d1 < d2) { if (d1 < d3) { m = d1; } else { m = d3; } } else { if (d2 < d3) { m = d2; } else { m = d3; } } dp[len1][len2] = m; return dp[len1][len2];}int minDistance(char *word1, char *word2) { size_t len1 = strlen(word1); size_t len2 = strlen(word2); for (size_t i = 0; i <= len1; ++i) { for (size_t j = 0; j <= len2; ++j) { dp[i][j] = 0; } } return findDist(word1, len1, word2, len2);}
0 0
- LeetCode: Edit Distance
- LeetCode Edit Distance
- LeetCode: Edit Distance
- [Leetcode] Edit Distance
- leetcode 19: Edit Distance
- [LeetCode] Edit Distance
- [Leetcode] Edit Distance
- LeetCode Edit Distance
- [LeetCode] Edit Distance
- [LeetCode]Edit Distance
- Leetcode: Edit Distance
- [leetcode]Edit Distance
- LeetCode-Edit Distance
- [leetcode] Edit Distance
- LeetCode - Edit Distance
- leetcode之Edit Distance
- leetcode edit distance
- 【leetcode】Edit Distance
- ImageView的属性scaletype
- Java 线程
- 1
- Java 链表
- Asp.Net大型项目实践-关键技术方案选择理由及思路
- 【leetcode】Edit Distance
- 好记性不如烂笔头之Oracle SQL优化(1)
- 利用MSP430F5438A单片机进行SD卡初始化——实战应用(四)与FatFs的整合1
- 例题7-5 困难的串 UVa129
- 百度网盘双倍流量上传
- Http中的cookie和session
- 【C语言】编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。(辗转相除法和常规求法)
- Redis 客户端redis-cli使用
- 24. 来自 PHP 之外的变量