2 条题解
-
0
复杂度O(26**2*n)
import os import sys n, k = map(int, input().split()) str = input() ls = 'abcdefghijklmnopqrstuvwxyz' lsi = {s: i for i, s in enumerate(ls)} c = [[0] * 26] for i in range(n): c.append([c[-1][i] for i in range(26)]) s = str[i] c[-1][lsi[s]] = c[-2][lsi[s]] + 1 r = 0 for i in range(n - k + 1): for j in range(i + k, i + k * 26 + 1, k): if j >= len(c): break f = 1 for s in range(26): if c[j][s] - c[i][s] > k: f = -1 break elif 0 < c[j][s] - c[i][s] < k: f = 0 break if f == 1: r += 1 elif f == -1: break print(r)
信息
- ID
- 170
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 434
- 已通过
- 113
- 上传者