# include ltcstdio gt
# include ltcstring gt
# include ltstack gt
Usar namespace std p >
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) p>
printf(" Sí \ n "
Otros
printf(" No \ n "); );
}
Devuelve 0;
}Haga clic para abrir el enlace.