SE CONSEGUIR RESOLVER QUALQUER PARTE EU AGRADEÇO MUITO
O meu programa é ler uma sequência de 'A's e 'B's e mostrar se é aceito ou não.
as regras são:
1) a sequência ser de tamanho múltiplo de 3; (Já fiz essa parte)
2) a cada três caracteres pelo menos um tem que ser A ou seja ele só aceita AAA,ABA,ABB,BAB,BBA; (estou com dúvidas nessa parte tentei eliminar verificando se a string contém BBB mais se colocar: ABBBBA ou ABBBAA fica como inválido)
3) se a sequência tiver qualquer caractere diferente de A e B , mostrar caractere inválido.(ainda não fiz).
#include <iostream>
#include <string>
#include <stdio.h>
#include <cstdlib>
using namespace std;
int main()
{
string palavra;int tamanho=0;
string cvr_palavra="",caractere=" ";
int posicao=0;
cout<<"Digite uma palavra: ";
getline(cin, palavra);
if(palavra.size()%3==0 )
{
cout<<"\nEssa palavra e multiplo de 3|"<<"\n\nO comprimento da palavra e:"<<palavra.size () ;
{
string frase = palavra;
size_t pos = frase.find("BBB");
if(pos == string::npos)
//cout << "A substring não foi encontrada.\n\n";
cout<<"\n\nEssa palavra e valida";
else
//cout << "A substring foi encontrada" <<" na posicao " << pos << ".\n\n";
cout<<"\n\nEssa palavra não e valida";
}
}
else
{
cout<<"\nEssa palavra não e multiplo de 3|"<<"\nO comprimento da palavra e: "<<palavra.size();
if (palavra[0]!='A'&& 'B')
cout<<"\npalavra invalida ";
else
cout<<"\npalvra valida "<<tamanho;
}
system("PAUSE > null");
return 0;
}