Binary String Matching 字符串的查找匹配 STL

来源:互联网 发布:易顺佳服装软件 编辑:程序博客网 时间:2024/06/01 08:21

Binary String Matching

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For example, the text string B is ‘1001110110’ while the pattern string A is ‘11’, you should output 3, because the pattern A appeared at the posit
输入
The first line consist only one integer N, indicates N cases follows. In each case, there are two lines, the first line gives the string A, length (A) <= 10, and the second line gives the string B, length (B) <= 1000. And it is guaranteed that B is always longer than A.
输出
For each case, output a single line consist a single integer, tells how many times do B appears as a substring of A.
样例输入
31110011101101011100100100100011010110100010101011 
样例输出
303 
来源

网络

#include<algorithm>  #include<iostream>  #include<string>  #include<cstring>  using namespace std;  int main()  {  int n;cin>>n;    string s,s1,s2;      while(n--)      {          string::size_type position=0;          //position = s.find("you"); //find 函数 返回you 在s 中的下标位置           //cout<<flag<<endl; cin>>s1>>s2;int cont =0;        while((position=s2.find(s1,position))!=(string::npos)) //find 必须匹配完整的字符串,find_first_of只需要匹配部分          {                 cont++;            position++;           }             cout<<cont<<endl;      }      return 0;  }  



或者:

#include<iostream>#include<string>using namespace std;int main(){int n;cin>>n;while(n--){ int count=0;string str1,str2,a="";cin>>str1>>str2;for(int i=0;i<str2.size();i++){a=str2.substr(i,str1.size()); //substr() 从一个字符串复制一个从指定位置开始,并具有指定长度的子字符串。里边两个参数,第一个起始位置,第二个提取字符数if(a==str1) count++;}cout<<count<<endl;}}


0 0
原创粉丝点击