题解
2026-09-13 16:40:56
发布于:四川
5阅读
0回复
0点赞
用(队列)实现
#include<bits/stdc++.h>
using namespace std;
int n, m, cnt = 0;
queue<char>q;//队列
bool a[10000]{};//是否存储数组(可以的话用希哈表)
int main(){
cin >> n >> m;
while(n--){
char c;
cin >> c;
if(a[(int)c] == 0){//不知道有没有除了小写字母之外的字符
cnt++;//不认识先翻书再认识
a[(int)c] = 1;
if(q.size() < m){//还能记下
q.push(c);
}else{
a[(int)q.front()] = 0;//忘记
q.pop();
q.push(c);
}
}
}cout << cnt;
}
这里空空如也





有帮助,赞一个