Binary String Matching
描述
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
Java实现
private static int match(String a, String b) {
int result = 0;
int al = a.length();
int bl = b.length();
for(int i = 0; i < (bl - al + 1); i++){
String sub = b.substring(i, i + al);
if(sub.matches(a)){
result++;
}
}
return result;
}
private static void binaryStringMatch() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] a = new String[n];
String[] b = new String[n];
for(int i = 0; i < n; i++){
a[i] = sc.next();
b[i] = sc.next();
}
for(int i = 0; i < n; i++){
System.out.println(match(a[i], b[i]));
}
}
浙公网安备 33010602011771号