Leetcode 72. Edit Distance
2016-03-31 21:46
309 查看
Question
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
Code
/* 动态规划算法解决 */ public int minDistance(String word1, String word2) { if (word1.length() == 0 || word2.length() == 0) { return word1.length() == 0 ? word2.length() : word1.length(); } int[][] weights = new int[word1.length() + 1][word2.length() + 1]; for (int j = 0; j <= word2.length(); j++) { weights[0][j] = j; } for (int i = 0; i <= word1.length(); i++) { weights[i][0] = i; } for (int i = 1; i <= word1.length(); i++) { for (int j = 1; j <= word2.length(); j++) { if (word1.charAt(i - 1) == word2.charAt(j - 1)) { weights[i][j] = weights[i - 1][j - 1]; } else { weights[i][j] = Math.min(weights[i - 1][j - 1] , Math.min(weights[i - 1][j], weights[i][j - 1])) + 1; } } } return weights[word1.length()][word2.length()]; }
相关文章推荐
- Webservice的几个重要术语
- Kmemleak检测工具介绍
- 三层登录实现
- Android学习启动篇——itxiebo
- Spring学习——(八)关于HibernateTemplate的使用
- 卷积神经网络(CNN)
- 不要在游戏还没开始就输了
- visual studio installer 卸载时不能删除安装目录问题
- Java基础篇
- Spring中的小知识点
- Voice Lab5- CUCM-1
- 码农小汪-剑指Offer之27 -最小的K个数
- 浅谈《机房收费系统》重构中的Boolean和Datatable
- 网络基础:双绞线
- 数据挖掘(10):卷积神经网络算法的一个实现
- 总结四
- 软件版本
- LCT学习笔记
- C++之多态性与虚函数
- ldif的数据结构及一个DEMO