AcWing 4960. 子串简写
原题链接
中等
作者:
fourth_nt
,
2024-04-10 11:41:27
,
所有人可见
,
阅读 1
Java 代码
import java.util.Scanner;
public class Main {
//i j之间一直保持k的距离,只要j遇到b就++,当i遇到a时,无论现在j是不是b,a与之前的所有的b的距离一定大于等于k
//正序遍历反过来即可
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int k = sc.nextInt();
String s = sc.next();
char c1 = sc.next().charAt(0), c2 = sc.next().charAt(0);
int n = s.length();
long num = 0;
long res = 0;
for(int i = n - k, j = n - 1; i >= 0; i--, j--) {
if(s.charAt(j) == c2)
num++;
if(s.charAt(i) == c1)
res += num;
}
System.out.print(res);
}
}