题解 | #计算字符串的距离#

计算字符串的距离

http://www.nowcoder.com/practice/3959837097c7413a961a135d7104c314

#include <stdio.h>
#include <string.h>

int mix(int a,int b,int c){
    a=(a<b)?a:b;
    a=(a<c)?a:c;
    return a;
}

void d_p(char *str0,char *str1){
    int i,j,len0,len1;
    len0=strlen(str0);
    len1=strlen(str1);
    int dp[len0+1][len1+1];
    dp[0][0]=0;
    for(i=1;i<len0+1;i++) dp[i][0]=i;
    for(i=1;i<len1+1;i++) dp[0][i]=i;
    for(i=1;i<len0+1;i++){
        for(j=1;j<len1+1;j++){
            if(str0[i-1]==str1[j-1]) dp[i][j]=dp[i-1][j-1];
            else dp[i][j]=mix(dp[i-1][j-1]+1,dp[i][j-1]+1,dp[i-1][j]+1);
        }
    }

    printf("%d \n",dp[len0][len1]);
}

int main(void) { 
	char str0[1000],str1[1000];

	while(scanf("%s",str0)!=-1){
	    scanf("%s",str1);
	    d_p(str0,str1);
	}
	return 0;
}
全部评论

相关推荐

深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
06-27 18:53
门头沟学院 Java
这样才知道自己不适合搞代码,考公去咯
只爱喝白开水:我也发现不适合搞代码,打算转非技术方向了
点赞 评论 收藏
分享
评论
8
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务