标签:
描述:
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
3 11 1001110110 101 110010010010001 1010 110100010101011
3 0 3
import java.util.Scanner; public class No5 { private int stringCheck(String aStr, String bStr) { try { StringBuffer aSB = new StringBuffer(aStr); StringBuffer bSB = new StringBuffer(bStr);
// 窗口滑动次数 int step = bStr.length() - aStr.length() + 1;
// 模拟滑动窗口 int window = aStr.length(); int equalCount = 0; for (int i = 0; i < step; i++) { int result = ((String) bStr.subSequence(i, i + window)) .compareTo(aStr); if (result == 0) { equalCount++; } } return equalCount; } catch (RuntimeException e) { } return -1; } public static void main(String args[]) throws Exception { try { Scanner cin = new Scanner(System.in); int num = cin.nextInt(); int[] result = new int[num]; No5 no5 = new No5(); for (int i = 0; i < num; i++) { String aStr = cin.next(); String bStr = cin.next(); result[i] = no5.stringCheck(aStr, bStr); } for (int i = 0; i < num; i++) { System.out.println(result[i]); } } catch (RuntimeException e) { } } }
标签:
原文地址:http://www.cnblogs.com/lifelonglearner/p/4620191.html