想问一下 谁能给一些提示关于这个代码

输入一个字符串(包含两种字母AB)比如ABAABAABBBA
若随意选取连续选取一段不小于3的字符串
例如从第一位到第四位ABAA
或者从第二位到第六位 BAABAA
判断这个字母串里是否只有一个不同的字母
若有的话 则有几个字符串里只有一个不同字母(一个A或一个B)
要求是输入ABABA 输出3

看起来不像是个编程题,像是个阅读理解题...

输入ABABA 怎么输出3的?

出现C怎么办


#include<iostream>
using namespace std;
int main()
{
int count=0; 
    string a="abababab";
    for (int i=0;i<=5;i++){
        
    if(a[i]!=a[i+1]&&a[i]!=a[i+2])
    {
    count++;
    }
        if(a[i+1]!=a[i]&&a[i+1]!=a[i+2])
    {
    count++;
    }
        if(a[i+2]!=a[i]&&a[i+2]!=a[i+1])
    {
    count++;
    }

    }
    cout<<count<<endl;
 } 

目前暂时想出来这么多,问题不知道这一串字符取三个字符有多少种组合。


#include<iostream>
using namespace std;
int main()
{
int count=0; 
    string a;
    cin>>a;
    int lens=a.length();

    int num=3;//从三个字符开始。 

while(num<=lens)//这一步表示字符个一直增加 
{
    
        for(int i=0;i<=lens-num;i++)//从0位到始的NUM位,从1位开始的NUM位 ....
    
    {

    int acf=0;
    int bcf=0;
        for(int j=0;j<num;j++)
    {
        
        int w=i+j;//0.1.2/1.2.3/2.3.4
        
        
        if(a[w]=='A')
        {
            acf++;
        }
        
        if(a[w]=='B')
        {
            bcf++;
        }

   }
            if(acf==1||bcf==1)//如果只有一个A,或者只有一个B 
    {
        count++;
    }
    
    }
    num++;//循环一轮后字符数加1 
}
cout<<count<<endl;
return 0;
 } 

哇,吐血,从昨天搞到今天才搞出来,晚上搞到十点都没搞出来,睡觉都还在想,今天早上刷牙的时候,想着想着突然茅塞顿开,其实挺简单,之前是自己把自己绕进去了。

判断字符重复个数吗?你的问题有点含糊