题解 P2957 【[USACO09OCT]谷仓里的回声Barn Echoes】
2021.3.7 : 修正错解。
重点:
a=s.substr(n,m):截取字符串
s.find(n):返回字符串
因为数据范围极小,所以直接枚举回声的长度暴力判断即可。
#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;
}