"Un grupo de pequeños amigos suele reunirse para jugar a los espías. Como pretenden imitar a los buenos espías, tienen sus medios para codificar mensajes. En particular, para informar a sus colegas si sus actividades de espionaje han dado resultado o no, han ideado el siguiente método. Los chicos tienen una hilera ‘base’ de letras del alfabeto internacional. Cuando quieren transmitirle a otro un mensaje indicando el resultado exitoso de su misión, envían por celular una palabra que sólo puede leerse en la hilera base de izquierda a derecha. Si la misión resultó fallida, mandan una palabra que en la hilera base sólo puede leerse al revés, es decir de derecha a izquierda. A veces necesitan avisar que la misión encomendada está demorada, por lo que no pueden usar el método anterior. En este caso mandan una palabra que no puede leerse en ningún sentido.
Para ayudar a los chicos, se te pide que escribas un programa mensajes.cpp que, recibiendo una palabra y teniendo la secuencia de letras ‘base’, decida si la palabra está o no, y en el primer caso en qué dirección se pudo leer."
Por ejemplo:
Entrada:
ABDLFJKDSHKHLIDFNMENSAJESJDSKFJSDFNISDFJDFSLKJDFSLDFS
MENSAJE
Salida:
SI
I
Entrada:
ABDLFJKDSHKHLIDFEJASNEMJDSKFJSDFNISDFJDFSLKJDFSLDFS
MENSAJE
Salida:
SI
D
Ejemplo
Entrada:
ABDLFJKDSHKHLIDFMENSAJEJDSKFJSDFNISDFJDFSLKJDFSLDFS
SECRETO
Salida:
NO
esto se lo que tengo hasta ahora, pero la función es un int, y debería ser un bool.
Código
#include <iostream> #include <string> using namespace std; int Sepuedeleer (string base, string palabra){ string base2; int ban; for (int i= base.size(); i >=0 ; i--){ base2+= base[i]; } if(base.find(palabra) !=base.npos){ ban=1; } if(base2.find(palabra) !=base.npos){ ban=2; } return ban; } int main(){ string base, palabra; int ban; cout <<"Ingrese el mensaje: "; getline(cin, base); cout <<"Ingrese la palabra clave: "; cin >>palabra; ban= Sepuedeleer(base, palabra); switch(ban){ case 0: cout <<"No" <<endl; break; case 1: cout <<"Si" <<"\nI" <<endl; break; case 2: cout <<"Si" <<"\nD" <<endl; break; } return 0; }
Gracias de antemano