CF Vicious Keyboard 构造水题

来源:互联网 发布:太阳黑子与气候数据 编辑:程序博客网 时间:2024/06/05 16:18

题目说 在给定字符串中 只能改变一个字符的情况下 求最大的VK字符的数量

分析

为了防止出错 这里要注意 为了防止VK判断的时候
不影响其他的判断 对于一个VK 我们最好不要把他删掉删掉后有可能会增加新的VK
就直接用特定值把原来的VK覆盖掉
然后对于剩下的可能 最多只能增加一个VK
就是通过 目标条件判断 计数就可以

#include<bits/stdc++.h>using namespace std;int main(){    string l;    getline(cin,l);    int pos=0,c=0;    while(l.find("VK",0)!=string::npos){        pos = l.find("VK",pos);        l[pos]=32,l[pos+1]=32;        c++;    }    int v=0,k=0;    for(int i=0;i<l.length();i++){        if(l[i]=='V'&&(i+1)<l.length()&&l[i+1]!=32)v++;        else if(l[i]!=32&&(i+1)<l.length()&&l[i+1]=='K')k++;//下标操作 注意判断边界条件     }     if(v||k)c++;    cout<<c<<endl;    return 0;} 
原创粉丝点击