题目说 在给定字符串中 只能改变一个字符的情况下 求最大的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;
}