zoukankan      html  css  js  c++  java
  • Lec1计算字符串的相似度

    编程之美3.3节

     1 //计算字符串的相似度
     2 //参见编程之美3.3节
     3 //方法:递归
     4 //思路:怎样减小问题的规模
     5 #include <iostream>
     6 #include <cstring>
     7 #include <cstdio>
     8 
     9 using namespace std;
    10 
    11 //int x,y,z; //用全局变量和临时变量的区别在哪里?//问题就出现在这里!!!!!!
    12 //如果定义为全局变量,存储在静态存储区,在整个函数范围内可以访问。那么后续的调用中会改变x的值。
    13 //x的值不能在最初调用的那一层被作为临时变量保存
    14 
    15 int minVal(int a,int b,int c)
    16 {
    17     return (a<=b?a:b)<=c?(a<=b?a:b):c;
    18 }
    19 
    20 int calculateSimilarity(char* a, int i, int j, char* b, int m, int n)
    21 {
    22     if (i > j)
    23     {
    24         if (m <= n)
    25             return (n - m +1);
    26         else
    27             return 0;
    28     }
    29     if (m>n)
    30     {
    31         if (i<=j)
    32             return (j - i + 1);
    33         else
    34             return 0;
    35     }
    36 
    37     //if (*a(i) == *b(m))    应该是*(a+i)和*(b+m)
    38     if (a[i]==b[m])
    39     {
    40         return calculateSimilarity(a,i+1,j,b,m+1,n);
    41     }
    42     else
    43     {
    44         int x = calculateSimilarity(a,i,j,b,m+1,n)+1 ;
    45         int y = calculateSimilarity(a,i+1,j,b,m,n)+1 ;
    46         int z = calculateSimilarity(a,i+1,j,b,m+1,n)+1;
    47         return minVal(x,y,z);
    48     }
    49 }
    50 
    51 int main()
    52 {
    53     char a[100];
    54     char b[100];
    55     int change=0;
    56     while (1)
    57     {
    58         cout<<"Please input the first string:"<<endl;
    59         cin>>a;
    60         cout<<"Please input the second string:"<<endl;
    61         cin>>b;
    62         change = calculateSimilarity(a,0,strlen(a)-1,b,0,strlen(b)-1);
    63         cout<<"The change needed is "<<change<<endl<<endl;
    64     }
    65 }
  • 相关阅读:
    动与静
    ASP.NET 2.0 Membership
    又是asp.net 2.0的一个奇怪异常
    Cool tool !ASP.NET AJAX JavaScript Class Browser
    UserFul Methods
    中秋快乐
    Windows Vista RTM
    asp.net 2.0 下的表单验证Cookieless属性
    DataTable 内部索引已损坏:"4"
    asp.net 2.0 用户管理功能结构
  • 原文地址:https://www.cnblogs.com/avril/p/2031894.html
Copyright © 2011-2022 走看看