21.6.6
#include<bits/stdc++.h>
using namespace std:
l:
stringss1,s2
INT MAIN()
getline(cin,
getline(cin,s1
getline(cin,s2)//输入
n=s.find(s1)://s1在最左边的位置
a=s.rfind(s2);//s2在最右边的位置
l=s1.length0://s1的长度
if(a<nlla==-11ln—-1
Cout-1://判断是否存在
else couta-n-l;//输出距离
return 0:
1
描述
有三个字符串SS1其度不超过300,S1和S2的长度不超过10.想检测S1和S2是否同时在S
中出现,且S1位于S2的左边,并在S中互不交叉(即,S1的右边界点在S2的左边界点的左侧).计算满足
上述条件的最大跨距(即,最大间隔距离:最右边的S2的起始点与最左边的S1的终止点之间的字符数目).
如果没有满足条件的S1,S2存在,则输出-1.
例如,S="abcd123ab888efghij45ef67k",s1="ab",S2="ef",其中,S1在S中出现了2次,S2也在
S中出现了2次,最大跨距为:18.
输入
三个串:S,S1,S2,其间以逗号间隔(注意,S,S1,S2中均不含逗号和空格);
输出
S1和S2在S最大跨距:若在S中没有满足条件的S1和S2,则输出-1.
样例输入
abcd123ab888efghij45ef67kl,abef
样例输出
没区别呀
有区别,注意 int 和 unsigned int 运算结果是unsigned int