一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?
输入描述:
输入包含多组数据。 每组数据包含两个字符串s,t,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。输出描述:
对应每组输入,输出能从花纹布中剪出的最多小饰条个数,如果一块都没有,那就输出0,每个结果占一行。示例
输入
abcde a3 aaaaaa aa输出
0 3
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(); int n=0; while (s.contains(t)){ n++; s=s.replaceFirst(t," "); } System.out.println(n); } } }
思路:
循环判断s里面是否有t,如果有则计数+1,并且用空格替换掉第一次出现的t
此处用到的库函数:
String replaceAll(String regex, String replacement) 替换所有的指定内容 String replaceFirst(String regex, String replacement) 替换首个内容