1 条题解

  • 0
    @ 2025-8-24 21:43:50

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Alex_Wei
    **

    搬运于2025-08-24 21:43:50,当前版本为作者最后更新于2019-01-19 11:20:51,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    2021.3.7 : 修正错解。


    重点:string\mathrm{string} 类成员函数(find\mathrm{find}substr\mathrm{substr})。

    a=s.substr(n,m):截取字符串 ss 中从第 nn 位(位数从 00 开始)开始的长度为 mm 的字符串并赋给 aa

    s.find(n):返回字符串 nnss 中第一次出现的位置(开头),如果没有找到,则返回 1-1

    因为数据范围极小,所以直接枚举回声的长度暴力判断即可。

    #include<bits/stdc++.h>
    using namespace std;
    string a,b;
    int main(){
    	cin>>a>>b; if(a.size()>b.size())swap(a,b);//如果a比b长,先调换位置,避免substr时访问越界
    	for(int x=a.size()-1;x>=0;x--){//x代表回声的长度
    		string prea=a.substr(0,x),sufa=a.substr(a.size()-x,x);
    		string preb=b.substr(0,x),sufb=b.substr(b.size()-x,x);
    		if(prea==sufb||preb==sufa)cout<<x<<endl,exit(0);
    		//如果一个字符串的前缀等于另一个字符串的后缀,输出答案即可
    	} return 0;
    }
    
    • 1

    信息

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