zoukankan      html  css  js  c++  java
  • 1183 编辑距离

    1183 编辑距离

    基准时间限制:1 秒 空间限制:131072 KB
    编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
    例如将kitten一字转成sitting:
    sitten (k->s)
    sittin (e->i)
    sitting (->g)
    所以kitten和sitting的编辑距离是3。俄罗斯科学家Vladimir Levenshtein在1965年提出这个概念。
    给出两个字符串a,b,求a和b的编辑距离。
    Input
    第1行:字符串a(a的长度 <= 1000)。
    第2行:字符串b(b的长度 <= 1000)。
    Output
    输出a和b的编辑距离
    Input示例
    kitten
    sitting
    Output示例
    3
    #include <cstring> 
    #include <iostream>
    int min(int a,int b){
        return a>b? b:a; 
    }
    int dp[1010][1010];
    int main()
    {
        char s[1010], b[1010];
        while(std::cin >> s>> b)
        {
            int n=strlen(s);
            int m=strlen(b);
             for(int i=0; i<=n; i++) dp[i][0]= i;
             for(int i=0; i<=m; i++) dp[0][i]= i;
             for(int i=1; i<= n; i++)
                 for(int j=1; j<= m; j++)
                 {
                     dp[i][j]=min(dp[i-1][j], dp[i][j-1])+ 1;
                     if(s[i-1]== b[j-1])    
                         dp[i][j]=min(dp[i][j], dp[i-1][j-1]);
                     else
                         dp[i][j]=min(dp[i][j], dp[i-1][j-1]+1);
                 }
             printf("%d
    ", dp[n][m]);
        }
        return 0;
    }
  • 相关阅读:
    Tomcat 8.5 添加https认证
    常用服务的搭建、配置及优化
    Linux基础知识整理
    在CentOS-6系统中二进制安装MySQL-5.6
    搭建本地yum源仓库
    Redis-请慎用String类型
    Redis AOF日志备份原理
    MySQL 输入查询
    MySQL 命令行连接选项
    感思-最好的优化就是减少数据量!
  • 原文地址:https://www.cnblogs.com/ceal/p/5506657.html
Copyright © 2011-2022 走看看