小编use*_*523的帖子

Damerau-Levenshtein距离(用转置编辑距离)c实现

我用c ++实现了Damerau-Levenshtein距离,但它没有为输入提供正确的o/p(pantera,aorta)正确的o/p是4但是我的代码给出了5 .....

int  editdist(string s,string t,int n,int m) 
{
    int d1,d2,d3,cost;
    int i,j;
    for(i=0;i<=n;i++) 
    {
        for(j=0;j<=m;j++)
        {
          if(s[i+1]==t[j+1]) 
              cost=0;
          else
              cost=1;
          d1=d[i][j+1]+1;
          d2=d[i+1][j]+1;
          d3=d[i][j]+cost;
          d[i+1][j+1]=minimum(d1,d2,d3);
          if(i>0 && j>0 && s[i+1]==t[j] && s[i]==t[j+1] )   //transposition
          {
              d[i+1][j+1]=min(d[i+1][j+1],d[i-1][j-1]+cost);
          }
        }
    }
    return d[n+1][m+1]; 
}
Run Code Online (Sandbox Code Playgroud)

我没有看到任何错误.有人可以发现代码有问题吗?

c++ string string-matching levenshtein-distance

11
推荐指数
2
解决办法
9080
查看次数

scan中的扫描集行为

我试图在scanf中使用scanset做一些东西但是卡在某处.

我写的时候

char s1[250];
scanf("%[A-Z]s",s1);

input : AHJHkiuy
Output: AHJH
Run Code Online (Sandbox Code Playgroud)

有了这个,

scanf("%[^\n]s",s1);

input: abcd ABCD hie
output: abcd ABCD hie       /*that is reading white space also (till \n) */
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,如果我提供输入:

ABCDahaj ahajABCD ajak12347ab
Run Code Online (Sandbox Code Playgroud)

并希望输出为:

ABCDahaj ahajABCD ajak
Run Code Online (Sandbox Code Playgroud)

那么格式字符串应该如何写?也就是说,如何使用这个扫描设备?

c scanf

6
推荐指数
1
解决办法
8042
查看次数

在C中设置位

我正在尝试执行以下操作:

写一个func setbits(x,p.n,y),返回xn位从p设置到最右边n位的位置开始,y其他位保持不变?

我试过这样但没有得到正确的答案.任何人都可以告诉我哪里错了吗?

unsigned setbits(unsigned x,int p,int n,unsigned y)
{
    return (x>>p & (y|(~0<<n)));
}
Run Code Online (Sandbox Code Playgroud)

c bit

5
推荐指数
1
解决办法
1098
查看次数

与文字的混淆,C中的算术

我写了下面的代码,期望它输出211,但是当我编译并运行它时,我看到了137.

有人可以解释一下发生了什么吗?谢谢.

?#include <stdio.h>

int main()
{
    int binary1,binary2;

    binary1 = 0100;
    binary2 = 0111;

    printf("%d\n", binary1 + binary2);

    return 0:
}
Run Code Online (Sandbox Code Playgroud)

c literals

2
推荐指数
2
解决办法
215
查看次数

标签 统计

c ×3

bit ×1

c++ ×1

levenshtein-distance ×1

literals ×1

scanf ×1

string ×1

string-matching ×1