作业介绍

相似字符串

#include <bits/stdc++.h>
using namespace std;

int n;
string s1, s2;
//如果相似,返回1,否则返回0
bool check(string s1, string s2){
    if(s1==s2) return 1;
    int l1=s1.size(), l2=s2.size();
    if(abs(l1-l2) >= 2) return 0;
    if(s1.size()==s2.size()){  //做修改操作
        int cnt = 0;  //记录有几个不同的字母
        for(int i=0; i<s1.size(); i++){
            if(s1[i] != s2[i]) cnt++;
        }
        return cnt==1;
    }
    if(s1.size() < s2.size()) swap(s1, s2);
    int cnt = 0;
    for(int i=0, j=0; i<s1.size() && j<s2.size(); i++){
        if(s1[i] != s2[j]) cnt++;
        else j++;
    }
    return cnt<=1;
}
int main(){
    cin >> n;
    while(n--){
        cin >> s1 >> s2;
        if(check(s1, s2)) cout << "similar\n";
        else cout << "not similar\n";
    }
    return 0;
}

状态
已结束
题目
15
开始时间
2024-6-22 0:00
截止时间
2024-6-29 23:59
可延期
24 小时