题目给出n组01字符串,每组字符串有A,B两个,len_A<=10,len_B<=1000,求B中与A相同的字串个数。
C++做法:
用String头文件中的compare函数即可
#include <iostream>
#include <string>
using namespace std;
int main(){
int n,i,j,lena,lenb,cnt;string A,B;
cin>>n;
for(i=0;i<n;i++){
cin>>A>>B;
lena=A.length();lenb=B.length();cnt=0;
for(j=0;j<=lenb-lena;j++){
if(B.compare(j,lena,A)==0)cnt++;
}
cout<<cnt<<endl;
}
}
C语言做法:
既然是01字符串,我们很容易地就能想到位运算操作。那么对区间的移动:

博客讲述了南阳理工学院ACM在线评估系统的0005题,该题要求找到两组长度不超过10和1000的01字符串中相同子串的个数。解决方案分别提供了C++和C语言的思路,C++利用String的compare函数,而C语言则采用位运算技巧,通过左移和与运算来判断字符是否相同。
2011

被折叠的 条评论
为什么被折叠?



