思路
本题为字符串题,很简单
只需了解如果相邻两个字符相同总数就直接+1的思路
直接上代码(注释从代码中标注)
代码
#include<bits/stdc++.h> //万能头文件
using namespace std;
int main()
{
string s;
cin>>s;
int cnt=0,len=s.length();
for(int i=0;i<len-1;i++)
{
if(s[i]==s[i+1]||s[i]=='?'||s[i+1]=='?') //如果相邻两个字符相同
{
cnt++;
i++; //直接跳过s[i+1]
}
}
cout<<cnt;
return 0; //好习惯
}
我就想不到o(╥﹏╥)o,当相邻两个字符相同时我还开了个bool数组标注状态,还枚举了两个情况然后取最大值o(╥﹏╥)o
有问题,如果输入只有一个“?”呢?,那答案应该是0,按照你这个代码的话,输出就是1了
哈哈,试了一下确实,假设输入1或者0输出0,但是输入?会输出1
你可以看看我完善的代码
输出还是0,因为只有一个’?’就不执行循环
我试过了,你可以把我的题解代码直接复制过去
输入:?
输出的就是0
对的,因为len-1<=0就直接跳出了~
#include[HTML_REMOVED] //万能头文件
using namespace std;
int main()
{
string s;
cin>>s;
int cnt=0,len=s.length();
}