acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 请接收

    userId_undefined

    cos

    70阅读
    0回复
    2点赞
  • 保姆式题解

    #include<iostream> #include<stack> #include<algorithm> using namespace std; const int maxn = 1e2 + 9; int n , m; char q[109] , a[109]; bool check(char x , int l , int r) { for(int k = l; k < r; k++) { if(q[k] == x) return false; } return true; } int main() { //1、定义两个变量n,m,进行输入 cin >> n >> m; //2、输入n个字符 for(int i = 1; i <= n; i++) cin >> a[i]; //3、定义变量head,tail,sum,分别表示队列的头、尾、翻看书本的次数 int head = 1 , tail = 1 , sum = 0; for(int i = 1; i <= n; i++) { //4、对于每一个字符先判断是否认识,可以定义一个函数,认识的话返回false,不认识的话返回true if(check(a[i] , head , tail)) { //5、不认识的,首先判断是否已经认识了m个字符,若已经认识,需要先出队 if(tail - head == m) head++; //6、新字符入队,翻看书本的次数增加 q[tail++] = a[i]; sum++; } } cout << sum; return 0; }

    userId_undefined

    恶龙世纪

    倔强青铜
    45阅读
    0回复
    0点赞
  • 虽然数组模拟更简单,但是stl也不是不行

    //大犟种 bool check(char x){ queue<char>q1; bool flag = false; while(!q.empty()){ if(q.front() == x){ flag = true; } q1.push(q.front()); q.pop(); }

    userId_undefined

    风虽

    秩序白银
    29阅读
    0回复
    0点赞
  • 题解

    userId_undefined

    zsy

    7月全勤卷王题解仙人出道萌新时间刺客时空双修者秩序白银
    6阅读
    0回复
    0点赞
首页