Hola.
Si
roman así es, también opino que se está acarreando el problema. No me caben dudas que en ese codigo existen bucles, funciones y condicionales aunque no se visualicen.
En el mensaje
#2 ya había objetado esas restricciones tan singulares, por que apegándonos a la letra del enunciado:
- Si no se puede usar funciones, no se puede realizar en C/C++. ( int main() {...} también es una función ).
- Si no se pueden usar bucles, no se puede resolver usando for, while, do ni tampoco goto.
- Si no se pueden usar condicionales, no se puede usar el operador ternario ( este último es un condicional con tres argumentos ).
Pero como cuando se hablaba de bucles sólo se excluía a
for y
while quedando goto dentro de lo permitido y cuando se excluía a
if () se incluia al operador ternario... seguí buscándole la vuelta
Ñuño, básicamente,
- string::begin() : devuelve un iterador al comienzo de la cadena normal.
- string::end() : devuelve un iterador al final de la cadena normal.
- string::rbegin() : devuelve un iterador al comienzo de la cadena inversa (el último caracter de la cadena normal).
- string::rend() : devuelve un iterador al final de la cadena inversa ( el primer caracter de la cadena normal).
Un ejemplo:
Código PHP:
{
string str = "Recorrer string con iterators.";
string::const_iterator ci;
string::reverse_iterator ri;
// recorrido normal de la cadena
for( ci = str.begin(); ci != str.end(); ci++ ) cout << *ci;
cout << endl;
// recorrido inverso de la cadena
for( ri = str.rbegin(); ri != str.rend(); ri++ ) cout << *ri;
cout << endl;
// O, con el mismo resultado anterior:
cout << string( str.rbegin(), str.rend() );
cout << endl;
// entonces si
ci = str.begin();
ri = str.rbegin();
cout << *ci << " " << *ri << endl; // se muestra: R .
// y si
ci = str.end();
ri = str.rend();
cout << *--ci << " " << *--ri << endl; // se muestra: . R (*)
...
(*) --, por que los iteradores
ci y
ri están sobre '\0'
Aquí van unos enlaces que te van a ser mas útiles que mi pobre explicación:
transform y toda esa linea no es necesaria para el caso de los números, lo había usado para pasar a mayúsculas en una de las pruebas que hice con cadenas. No lo borré y terminé copiándolo/pegándolo con el resto, disculpa el descuido
el código debería haber quedado así:
Código PHP:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s = "1234321";
s == string(s.rbegin(), s.rend()) ? cout << "capicua" : cout << "no capicua";
cin.get();
return 0;
}
Saludos