牛客链接
题目
一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
输入描述
输入包含多组数据。
每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。
输出描述
对应每组输入,输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就输出0,每个结果占一行。
解题思路
Java中的String有一个replaceFirst(String s1,String s2),简单说就是将字符串中第一次出现的字符串s1替换为s2,那么这个题我们就可以判断字符串s中是否包含字符串t,如果包含,那么将第一次出现在s字符串中的t字符串替换为空白字符串,让count++,继续循环判断,直到不包含为止,就可以求出题目所求。
代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String s = sc.next();
String t = sc.next();
System.out.println(strInclude(s,t));
}
}
public static int strInclude(String s,String t) {
int count = 0;
while (s.contains(t)){
count++;
s = s.replaceFirst(t,"");
}
return count;
}
}