北语 12.6 糖果炸弹

点击查看代码
#include<bits/stdc++.h>
using namespace std;


const int N=110;
const char null='*';

vector<char> str(N,'*');
int n;
//使用erase函数
int main()
{
    
    cin>>n;
    for(int i=0;i<n;i++){
        char ch;
        cin>>ch;
        str[i]=ch;
    }
    int i=0;
    while(str[i+1]!=null){
        if(str[i]==str[i+1]){
            str.erase(str.begin()+i,str.begin()+i+2);
            i=0;
        }else i++;
    }
    
    if(str[0]!=null){
        for(int i=0;str[i]!=null;i++) cout<<str[i];
    }else cout<<"Check"<<endl;

    return 0;
}
这道题,主要是巩固了很多语法吧,①首先对vector的初始化vector a(N,'*')括号中第一个是大小,第二个是初始化的值 ②还有对erase函数的使用,str.erase(str.begin()+i,str.begin()+i+2);,因为vector不是普通的数组,因此起始和截止要用迭代器表示,将迭代器加上一个数的类型也是迭代器,并且要遵循左闭右开的原理
posted @ 2025-12-08 09:15  AnoSky  阅读(4)  评论(0)    收藏  举报