Little Monkey Programación C++ | Navegador

¡Aprende C++ desde pequeño! Registre las preguntas en el proceso de aprendizaje de la programación de Xueersi Monkey y registre cada momento. Cualquier infracción será eliminada inmediatamente, ¡gracias por su apoyo!

Se adjunta una publicación resumida: Little Monkey Programming C++ | Resumen-Blog CSDN


[Descripción del Título]

Para mejorar su fuerza, Xiaohou suele responder preguntas en los principales sitios web. Luego descubrió que el navegador tiene tres operaciones: acceder, avanzar y retroceder. El pequeño mono tenía mucha curiosidad acerca de los principios de funcionamiento de estas tres operaciones. Después de buscar información relevante en Internet y combinarla con su propia práctica, descubrió que sus principios de funcionamiento son los siguientes:

Acceso : La operación de acceso requiere que el usuario proporcione una URL. El navegador accederá a la URL y establecerá la predecesora de la URL como la URL antes del salto.

Atrás : La operación de retroceso verifica si la URL actual tiene un predecesor (cada URL excepto la primera URL tiene un predecesor). Si es así, el navegador visitará el predecesor de la URL actual.

Adelante : Se utiliza para compensar el movimiento hacia atrás durante la operación de avance:

  • Si el paso anterior es retroceder, el navegador regresa a la página web antes de regresar.
  • Si el paso anterior es el acceso, ignore esta operación de avance (es decir, el botón de avance no es gris y no se puede hacer clic).
  • Si el paso anterior también es hacia adelante, y si el paso hacia adelante anterior ha compensado un paso hacia atrás, el efecto de avance se determinará en función de la operación anterior; de lo contrario, esta operación se ignorará.

Ahora al pequeño mono se le asignan  n  operaciones. Simule el comportamiento del navegador y genere la URL que visita al realizar cada operación.

【ingresar】

La primera línea contiene un número entero  n .

Las siguientes  n  líneas, cada línea representa un paso de operación:

  • Operación de acceso: comience con el carácter V, seguido de una URL, asegurándose de que no haya espacios u otros caracteres invisibles en el medio de la URL.
  • Operación de retroceso: representada por el carácter B.
  • Operación hacia adelante: representada por el carácter F.

【Producción】

Un total de  n  líneas, para cada paso:

  • Si el navegador accede a una determinada URL, se genera la URL;
  • Si el navegador ignora este paso, genera un ?.

【Muestra de entrada】

10
V noi.cn
V xiaohoucode.com
V baidu.com
B
B
F
F
F
V gesp.ccf.org.cn
F

【Muestra de salida】

noi.cn
xiaohoucode.com
baidu.com
xiaohoucode.com
noi.cn
xiaohoucode.com
baidu.com
?
gesp.ccf.org.cn
?

[Explicación detallada del código]

#include <bits/stdc++.h>
#include <stack>
using namespace std;
int n;
stack<string> A, B;
int main()
{
    cin >> n;
    for (int i=1; i<=n; i++) {
        char op;
        string s;
        cin >> op;
        if (op == 'V') {
            cin >> s;
            A.push(s);
            cout << s << endl;
            while (B.size()>0) B.pop();
        } else if (op=='B') {
            if (A.size()<2) cout << "?" << endl;
            else {
                B.push(A.top());
                A.pop();
                cout << A.top() << endl;
            }
        } else {
            if (B.size()==0) cout << "?" << endl;
            else {
                A.push(B.top());
                B.pop();
                cout << A.top() << endl;
            }
        }
    }
    return 0;
}

【resultado de la operación】

10
V noi.cn
noi.cn
V xiaohoucode.com
xiaohoucode.com
V baidu.com
baidu.com
B
xiaohoucode.com
B
noi.cn
F
xiaohoucode.com
F
baidu.com
F
?
V gesp.ccf.org.cn
gesp.ccf.org.cn
F
?

Supongo que te gusta

Origin blog.csdn.net/guolianggsta/article/details/134066733
Recomendado
Clasificación