subString

来源:互联网 发布:北京大学网络投诉 编辑:程序博客网 时间:2024/06/16 14:59
描述
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 
我是利用暴力的解法但是奇怪的是竟然AC过了
填上我的代码如下
#include<iostream>#include<string>using namespace std;int times(char*str,char* substring){    int time = 0;   while(*str)   {              char *copstring = substring;              while(*copstring)              {                               if(*copstring!=*str)                               {                                         break;                                                   }                               copstring++;                               str++;              }              if(!*copstring)              {                             ++time;                                                                                     }                             str = str - (copstring-substring)+1;                             copstring = substring;                             }                             return time;              }int main(){    int Times;    cin>>Times;    while(Times--)    {                  char str[1000];                  char substr[10];                                   cin>>substr;                                     cin>>str;                  cout<<times(str,substr)<<endl;                  }    return 0;}


0 0
原创粉丝点击