最短编辑距离
来源:互联网 发布:杭州摄影俱乐部 知乎 编辑:程序博客网 时间:2024/06/11 14:14
//最短编辑距离
#include<iostream>
#include<string>
using namespace std;
int minVal(int x, int y, int z){
int min = x<y?x:y;
return min<z?min:z;
}
int editlen(string s1, string s2){
int len1 = s1.length();
int len2 = s2.length();
int** pc = new int*[len1+1];
for(int i=0; i<=len1; ++i){
pc[i] = new int[len2+1];
}
for(int i=0; i<=len1; ++i){
pc[i][0] = i;
}
for(int j=0; j<=len2; ++j){
pc[0][j] = j;
}
for(int i=1; i<=len1; ++i){
for(int j=1; j<=len2; ++j){
if(s1[i-1]==s2[j-1]){
pc[i][j] = pc[i-1][j-1];
}else{
pc[i][j] = minVal(pc[i-1][j], pc[i][j-1], pc[i-1][j-1]) + 1;
}
}
}
for(int i=0; i<=len1; ++i){
for(int j=0; j<=len2; ++j){
cout<<pc[i][j]<<" ";
}
cout<<endl;
}
int eidtLength = pc[len1][len2];
//delete
for(int i=0; i<=len1; ++i){
delete[] pc[i];
}
delete[] pc;
return eidtLength;
}
int main(){
string s1 = "abcdd";
string s2 = "xxabc";
cout<<"res="<<editlen(s1,s2);
return 0;
}
#include<iostream>
#include<string>
using namespace std;
int minVal(int x, int y, int z){
int min = x<y?x:y;
return min<z?min:z;
}
int editlen(string s1, string s2){
int len1 = s1.length();
int len2 = s2.length();
int** pc = new int*[len1+1];
for(int i=0; i<=len1; ++i){
pc[i] = new int[len2+1];
}
for(int i=0; i<=len1; ++i){
pc[i][0] = i;
}
for(int j=0; j<=len2; ++j){
pc[0][j] = j;
}
for(int i=1; i<=len1; ++i){
for(int j=1; j<=len2; ++j){
if(s1[i-1]==s2[j-1]){
pc[i][j] = pc[i-1][j-1];
}else{
pc[i][j] = minVal(pc[i-1][j], pc[i][j-1], pc[i-1][j-1]) + 1;
}
}
}
for(int i=0; i<=len1; ++i){
for(int j=0; j<=len2; ++j){
cout<<pc[i][j]<<" ";
}
cout<<endl;
}
int eidtLength = pc[len1][len2];
//delete
for(int i=0; i<=len1; ++i){
delete[] pc[i];
}
delete[] pc;
return eidtLength;
}
int main(){
string s1 = "abcdd";
string s2 = "xxabc";
cout<<"res="<<editlen(s1,s2);
return 0;
}
0 0
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离
- 最短编辑距离算法
- HDU3356AGTC(最短编辑距离)
- 最短编辑距离算法
- 最短编辑距离 poj3356
- poj4323 最短编辑距离
- 最短编辑距离2
- Linux常用命令大全
- JS CSS 仿触屏手机拨号盘界面及功能模拟
- Oracle数据库的关键字
- zookeeper的集群模式下的安装和配置
- Scroller的使用
- 最短编辑距离
- SAMPLE SCRIPT TO CREATE SALES ORDER USING OE_ORDER_PUB.PROCESS_ORDER
- 黑马程序员-Java中静态绑定和动态绑定
- 修改a标签height,width的方法
- POSIX---互斥锁(pthread_mutex)和条件变量(pthread_cond)的用法
- 7个示例科普CPU Cache
- 二路归并排序
- Using the this API wsh_deliveries_pub.Delivery_Action to ship confirm for the delvery
- leetcode_Find Minimum in Rotated Sorted Array II