#include #include #include // abs using namespace std;

bool check(string a, string b) { int la = a.size(); int lb = b.size(); // 长度差超过1,直接不满足 if (abs(la - lb) > 1) return false;

int i = 0, j = 0;
int cnt = 0; // 记录不同的次数
while (i < la && j < lb)
{
    if (a[i] == b[j])
    {
        i++;
        j++;
    }
    else
    {
        cnt++;
        if (cnt > 1)
            return false;
        if (la > lb)
            i++; // 删除a当前字符
        else if (lb > la)
            j++; // 删除b当前字符(等价a插入)
        else
        {
            // 长度相等,修改
            i++;
            j++;
        }
    }
}
// 加上剩下的字符数量
cnt += la - i;
cnt += lb - j;
return cnt <= 1;

}

int main() { int T; cin >> T; while (T--) { string A, B; cin >> A >> B; if (check(A, B)) { cout << "similar" << endl; } else { cout << "not similar" << endl; } } return 0; }

0 条评论

目前还没有评论...