水题,分类讨论,模拟一下就行
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <queue>
#include <cstring>
#include <vector>
using namespace std;
char A[105], B[105];
int n1, n2;
int main()
{
//freopen("input.txt", "r", stdin);
scanf("%s%s", A, B);
bool match = true;
n1 = strlen(A);
n2 = strlen(B);
if (n1 < 8)
{
if (n1 != n2)
{
match = false;
}
else
{
for (int i = 0; i < n1; ++i)
{
if (A[i] != B[i])
{
match = false;
break;
}
}
}
}
else
{
if (n1 == n2)
{
int wrong = 0;
for (int i = 0; i < n1; ++i)
{
if (A[i] != B[i])
{
wrong++;
}
}
if (wrong <= 1)
match = true;
else
match = false;
}
else if (n2 == n1 - 1)
{
bool dropped = false;
for (int i = 0, j = 0; i <= n1&&j <= n2; ++i, ++j)
{
if (A[i] != B[j])
{
if (dropped)
{
match = false;
break;
}
else
{
dropped = true;
--j;
}
}
}
}
else
match = false;
}
if (match)
printf("yes\n");
else
printf("no\n");
//system("pause");
//while (1);
return 0;
}

本文介绍了一个简单的字符串匹配问题,通过分类讨论的方式实现两个字符串的匹配判断。当字符串长度小于8时,进行完全匹配;当字符串长度大于等于8时,允许一定条件下的字符差异或长度差异。代码使用C++编写,展示了如何通过不同的逻辑分支来处理不同长度情况下的匹配问题。
3754

被折叠的 条评论
为什么被折叠?



