NYOJ之Binary String Matching
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.
样例输入:
3
11
1001110110
101
110010010010001
1010
110100010101011
样例输出:
3
0
3
--------------------------------------------------------------------
AC代码:
1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 7 Scanner sc=new Scanner(System.in); 8 int n=Integer.parseInt(sc.nextLine()); 9 10 while(n-->0){ 11 String a=sc.nextLine(); 12 String b=sc.nextLine(); 13 int ans=solve(a,b); 14 System.out.println(ans); 15 } 16 17 } 18 19 public static int solve(String a,String b){ 20 int res=0; 21 for(int i=0;i<b.length();i++){ 22 int j=0; 23 for(j=0;j<a.length();j++){ 24 if((i+j>=b.length()) || (a.charAt(j)!=b.charAt(i+j))) break; 25 } 26 if(j==a.length()) res++; 27 } 28 return res; 29 } 30 31 } 32 33 34 35 另一种AC思路:(利用了内建的方法,不重复造轮子) 36 37 import java.util.Scanner; 38 39 public class Main { 40 41 public static void main(String[] args) { 42 43 Scanner sc=new Scanner(System.in); 44 int n=Integer.parseInt(sc.nextLine()); 45 46 while(n-->0){ 47 String a=sc.nextLine(); 48 String b=sc.nextLine(); 49 int ans=solve(a,b); 50 System.out.println(ans); 51 } 52 53 } 54 55 56 public static int solve(String a,String b){ 57 int res=0; 58 while(a.length()<=b.length()){ 59 if(b.indexOf(a)==0) res++; 60 b=b.substring(1,b.length()); 61 } 62 return res; 63 } 64 65 }
题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=5