33,010
社区成员
发帖
与我相关
我的任务
分享
int destinct(const char* s, const char* t, size_t n, size_t m)
{
int result = 0;
char diff, diff2;
if((n-m<=1) && (n-m>=-1))
{
while(*s==*t && *s!='\0') s++, t++;
switch(n-m)
{
case 1:
result = 3; // 可能是删除
diff = *s++;
break;
case -1:
result = 2; // 可能是插入
diff = *t++;
break;
default: // n==m
if(*s==*t)
{
result = 1; // 相同
break;
}
diff = *s;
diff2 = *t;
if(*++s == diff2 && *++t == diff)
{
s++;
t++;
result = 4; // 可能是交换
}
// else
// result = 5; // 可能是改变
}
while(*s==*t && *s!='\0') s++, t++;
if(*s!=*t)
result = 0;
}
switch(diff)
{
case 1:
printf("完全相同");
case 2:
printf("插入%c", diff);
case 3:
printf("删除%c", diff);
case 4:
printf("交换%c%c", diff, diff2);
// case 5:
// printf("改变%c为%c", diff, diff2);
default:
printf("不可能");
}
return(result);
}