AcWing 778. 字符串最大跨距
原题链接
困难
作者:
Samuely
,
2022-12-09 22:13:02
,
所有人可见
,
阅读 143
逗号分割读入
#include<iostream>
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.find(s1) == -1 || s.find(s2) == -1) cout << "-1";
else
{
int l, r, flag;
flag = 0;
for (int i = 0; i < s.size(); i++)
{
if (flag == 1) break;
int num = 0;
for (int k = 0; k < s1.size(); k++)
{
if (s[i+k] == s1[k]) num += 1;
else break;
if (num == s1.size())
{
l = i + s1.size() - 1;
flag = 1;
}
}
}
flag = 0;
for(int i = s.size() - s2.size(); i>=0; i--)
{
if (flag == 1) break;
int num = 0;
for (int k = 0; k < s2.size(); k++)
{
if (s[i + k] == s2[k]) num += 1;
else break;
if (num == s2.size())
{
r = i;
flag = 1;
}
}
}
if (l >= r) cout << "-1";
else cout << r - l - 1;
}
return 0;
}