字符串aba在字符串abababa中出现了3次
输入两字符串,求解后一行字符串在前一行中出现了几次,两个字符串可能包含除了换行、回车、\0外的任何字符。两字符串长度均不大于1000.
样例:
输入
i miss you!
you
输出
1
由题目分析,我们可以得出本题中统计字符出现次数,字符是可以重叠的,那么根据此特点,我们可以想到对字符串逐个递进的进行比对,以上述aba的例子简单来说,即先检查前三个和aba是否相同,再检查第二个到第四个和aba是否相同,再检查第三个到第五个……依次递进,直到长度超过了原字符串
C代码如下:
#include<iostream>
#include<string>
using namespace std;
int main(){
string ch1;
getline(cin,ch1);
string ch2;
getline(cin,ch2);
int len1=ch1.length();
int len2=ch2.length();
bool match;
int time=0;
for(int i=0;i+len2-1<=len1-1;i++){
match=true;
for(int j=0;j<len2;j++){
if(ch1[i+j]!=ch2[j]) match=false;
}
if(match==true) time++;
}
cout<<time<<endl;
return 0;
}