输入一个字符串(包含两种字母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;
}
哇,吐血,从昨天搞到今天才搞出来,晚上搞到十点都没搞出来,睡觉都还在想,今天早上刷牙的时候,想着想着突然茅塞顿开,其实挺简单,之前是自己把自己绕进去了。
判断字符重复个数吗?你的问题有点含糊