#P0848. 合格训练周期
合格训练周期
题目描述
训练营每天都会记录一名同学的打卡情况。
一共有 n 天,每天的记录用一个字符表示:
T表示当天训练;R表示当天休息。
老师想从这 n 天中选出一段连续的日期,作为一次“训练周期”。
如果这段训练周期中,休息日数量不超过 k 天,那么老师认为这段训练周期是合格的。
请你统计,一共有多少个合格的训练周期。
输入格式
第一行输入两个整数 n 和 k,表示天数和最多允许的休息日数量。
第二行输入一个长度为 n 的字符串 s,只包含字符 T 和 R。
输出格式
输出一行,一个整数,表示合格训练周期的数量。
样例
5 1
TRTRT
11
样例说明
字符串 TRTRT 的位置编号为 1 到 5。
当最多允许 1 个休息日时,合格区间如下:
- 从第
1天开始:[1,1]、[1,2]、[1,3],共3段; - 从第
2天开始:[2,2]、[2,3],共2段; - 从第
3天开始:[3,3]、[3,4]、[3,5],共3段; - 从第
4天开始:[4,4]、[4,5],共2段; - 从第
5天开始:[5,5],共1段。
所以答案为:
3 + 2 + 3 + 2 + 1 = 11
例如区间 [1,4] 对应 TRTR,其中有 2 个休息日,超过 k = 1,因此不合格。
数据范围
1 <= n <= 30000 <= k <= ns只包含字符T和R