1 条题解

  • 0
    @ 2025-8-24 21:16:12

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar yedalong
    注意力不够?刷题来凑!

    搬运于2025-08-24 21:16:11,当前版本为作者最后更新于2024-04-25 13:21:50,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    点这里观看更佳
    题目传送门


    个人觉得此题还行,我不会告诉你我提交了三次。

    思路

    把删除字符和增加字符两种操作合并成一种,本人没有做任何字符串操作。我分成了以下三种情况:
    1.两个字符串长度相等,改变字符串方式只有改变字符串中的字符一种方式,所以只需在两个字符串中寻找不相同字符个数,如果不相同字符数小于等于 11,就可以,否则不行。
    2.两个字符串长度相差等于 11,先将长度长度字符串放在第一个,方便操作。只需在两个字符串中遍历,整个标记,在第一个不相同的字符改标记,标记代表第二个字符串中已经有插入过数,以后坐标都改成 i+1i+1。当标记为 11 时,在后面还能找到不同的字符,也是没救的。
    3.两个字符串长度相差大于 11,这是没救的。

    AC code:

    #include <bits/stdc++.h>//万能头
    using namespace std;
    int main(){
        int n;cin>>n;//输入
        while(n--){
            string a,b;cin>>a>>b;//输入
            if(a.size()<b.size()) swap(a,b);//统一字符串 a 最长,方便操作
            if(a.size()-b.size()>1){//如果长度相差大于 1,无论怎么做都无法一样
                cout<<"not similar"<<endl;
                continue;
            }
            if(a.size()-b.size()==1){//如果相差 1 就统一让字符串 b 增加一个字母
                int ans=0,f=0;//ans 代表 b[i] 当前是否有和 a[i] 不相等
                for(int i = 0;i<b.size();i++){
                    if(a[i+ans]!=b[i])ans=1;//如果不相等 ans 就为 1
                    if(ans&&a[i+ans]!=b[i]){//如果 ans 已经为 1 了还不相等就没救了
                        cout<<"not similar"<<endl;
                        f=1;
                        break;//要退循环,不然你会看见好多个 not similar
                    }
                } 
                if(f==0) cout<<"similar"<<endl;
            }
            if(a.size()==b.size()){//如果长度相等,直接判断 a 和 b 有多少个不相等
                int sum=0;
                for(int i = 0;i<a.size();i++){
                    if(a[i]!=b[i]) sum++;//统计有多少个不相等
                }
                if(sum<=1) cout<<"similar"<<endl;//不相等数量小于等于 1 是就可以
                else cout<<"not similar"<<endl;
            }
        }
      return 0;//完结撒花
    }
    

    码字辛苦,管理员给过。。。
    都看完了,点个赞再走吧 qwq

    • 1

    信息

    ID
    10021
    时间
    1000ms
    内存
    512MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者