题目
题目描述
一个字符串中任意个连续的字符组成的子序列为该字符串的子串。给定子串s1
和它的一个字符串s2
,求s1
在s2
中出现的次数。
输入
第一行,表示字符串s1
, 第二行,表示字符串s2
输出
一个整数,代表s1
在s2
中出现的次数。
样例输入
ab
abbaabcaabc
样例输出
3
思路
在在s2
里寻找s1
,找到了返回位置,然后再从s2
的第p+1
个位置开始寻找s1
AC代码
#include<bits/stdc++.h>
using namespace std;
int main() {
string s1,s2;
int p,s=0;
cin>>s1>>s2;
p=s2.find(s1);//在s2里寻找s1,找到了返回位置
while(p!=-1) {
s++;
p=s2.find(s1,p+1);//从s2的第p+1个位置开始寻找s1
}
cout<<s;
return 0;
}