AcWing 778. 字符串最大跨距
原题链接
简单
作者:
桻
,
2024-10-03 16:40:06
,
所有人可见
,
阅读 1
字符串最大跨距
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s, s1, s2;
char c;
while(cin >> c, c != ',') s += c;
while (cin >> c, c != ',') s1 += c;
while(cin >> c)
s2 += c;
//读入数据
if(s.size() < s1.size() || s.size() < s2.size())
puts("-1");//无解的情况 主串的长度小于字串的长度
else
{
int l = 0;//第一个字符的左起点
while(l + s1.size() <= s.size())
{
int k = 0;
while(k < s1.size())
{
if(s[l + k] != s1[k])//不匹配的条件
break;
k++;
}
if(k == s1.size())//匹配条件
break;
l++;
}
int r = s.size() - s2.size();
while(r >= 0)
{
int k = 0;
while(k < s2.size())
{
if(s[r+k] != s2[k])
break;
k++;
}
if(k == s2.size())
break;
r--;
}
l += s1.size() - 1;//s1串最右端位置
if(l >= r)
puts("-1");//当l的位置不完全在r的左边
else
cout << r - l - 1 << endl;
}
return 0;
}