Utilice Java para implementar el segundo ejercicio que puede aprobar la evaluación en línea ACM del Politécnico de Nanyang: coincidencia de grupos

La respuesta es la siguiente

# include ltcstdio gt

# include ltcstring gt

# include ltstack gt

Usar namespace std

char str[10000 11];

int main()

{

int n, I, l

<; p >scanf("d ", ampn);

mientras (n -)

{

memset(cadena, ' 0 ', tamaño de(cadena) ) ; //Borrar la matriz a cero.

scanf("s ", str);

l = strlen(str);

pila ltchar gtstk

bool ans =; verdadero

for(I = 0;iltl;i)

{

If(str[I]= = '(' | | str[I ] = '[')// Si el carácter a ingresar es un corchete frontal, ingréselo Incluso si solo queda uno al final, no está vacío, pero ninguno

STK. push(str[ I]);

Else if (str[i] == ')')//Los caracteres a ingresar son corchetes. Si la pila está vacía en este punto y este es el primer carácter, definitivamente fallará. Simplemente salga del circuito, por desgracia.

{

if (stk.empty())

{

STK . p>

p>

Break;

}

Elsef(STK.top()= '(')//Si la parte superior de la pila es coincidente soporte frontal en este momento, luego elimine la parte superior de la pila sin ingresar el contenido que se ingresará dos veces

STK

Otros

. {

ans = false; // En cualquier otra situación, por ejemplo, hay un elemento en la pila en este momento, pero la parte superior de la pila no coincide, entonces no lo elimine. falso, ejecuta.

Break ;

}

}

else if (str[i] == ']')

{

if (stk.empty())

{

STK . p>

Romper;

}

else if (stk.top() == '[')

STK pop();<. /p>

Otro

{

ans = false;

romper

}

}

}

If (!stk.empty())? //La pila está vacía, cualquier cosa que no sea vacía es falsa

ans = false.

Si (respuesta)

printf(" Sí \ n "

Otros

printf(" No \ n "); );

}

Devuelve 0;

}Haga clic para abrir el enlace.