import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { // 输入数据 Scanner in = new Scanner(System.in); String a = in.next(); String b = in.next(); // 算法核心 // 采用HashSet记录匹配成功的字符串,实现去重的目的 HashSet<String> set = new HashSet<>(); int al = a.length(); int bl = b.length(); for (int aStart = 0; aStart < al - bl + 1; aStart++) { // aStart表示新一轮匹配在a上的起点下标,要与b的0位置对齐 boolean yes = true; for (int ai = aStart, bi = 0; bi < bl; ai++, bi++) { // 构造字符匹配成功的条件 boolean match = b.charAt(bi) == '?' || b.charAt(bi) == a.charAt(ai); if (!match) { // 若匹配失败 yes = false; break; } } if (yes) { // 匹配成功时,对应在a上就是aStart ~ aStart + bl - 1上, // 将其记录进set中 set.add(a.substring(aStart, aStart + bl)); } } // 结果输出 System.out.println(set.size()); } }