相关题目:
字符串最大跨距https://www.acwing.com/problem/content/780/https://www.acwing.com/problem/content/780/
相关代码:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){
string s,s1,s2;
char c;
while(cin>>c,c!=','){
s=s+c;
}
while(cin>>c,c!=','){
s1=s1+c;
}
while(cin>>c){
s2=s2+c;
}
int a=s.find(s1);
int b=s.rfind(s2);
if(a!=-1&&b!=-1&&a+s1.length()<b){
cout<<b-s1.length()-a;
}
else{
cout<<"-1";
}
return 0;
}
注意点:
1 rfind()函数的作用是从右往左寻找字串首个元素的下标。
2 while(cin>>c,c!='\n'){} 这种写法是错误的,cin>>c执行时,空格和回车键不能读入。
补充:
getline(cin,s,','); //表示的意思时字符串s到','前截止。