/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
System.
out.
println (Ideone.
valid("(){}[]")); System.
out.
println (Ideone.
valid("(}")); System.
out.
println (Ideone.
valid("[(])")); System.
out.
println (Ideone.
valid("([{}])")); }
public static boolean valid
(String braces
) {
StringBuilder validateString = new StringBuilder(); //No deque found
for (int i = 0; i < braces.length(); i++){
char c = braces.charAt(i);
int head = validateString.length()-1;
char top = head > 0 ? validateString.charAt(head) : '\u0000';
if (top == c) {
validateString.deleteCharAt(head);
}else {
validateString.append(c);
}
System.
out.
println (validateString.
toString()); }
return validateString.length() == 0;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN5c3RlbS5vdXQucHJpbnRsbiAoSWRlb25lLnZhbGlkKCIoKXt9W10iKSk7CgkJU3lzdGVtLm91dC5wcmludGxuIChJZGVvbmUudmFsaWQoIih9IikpOwoJCVN5c3RlbS5vdXQucHJpbnRsbiAoSWRlb25lLnZhbGlkKCJbKF0pIikpOwoJCVN5c3RlbS5vdXQucHJpbnRsbiAoSWRlb25lLnZhbGlkKCIoW3t9XSkiKSk7Cgl9CgoJcHVibGljIHN0YXRpYyBib29sZWFuIHZhbGlkKFN0cmluZyBicmFjZXMpCgl7CgkJU3RyaW5nQnVpbGRlciB2YWxpZGF0ZVN0cmluZyA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7ICAvL05vIGRlcXVlIGZvdW5kCgkgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBicmFjZXMubGVuZ3RoKCk7IGkrKyl7CgkgICAgCWNoYXIgYyA9IGJyYWNlcy5jaGFyQXQoaSk7ICAgICAgICAKCSAgICAgICAgaW50IGhlYWQgPSB2YWxpZGF0ZVN0cmluZy5sZW5ndGgoKS0xOwoJCgkgICAgICAgIGNoYXIgdG9wID0gaGVhZCA+IDAgPyB2YWxpZGF0ZVN0cmluZy5jaGFyQXQoaGVhZCkgOiAnXHUwMDAwJzsKCQoJICAgICAgICBpZiAodG9wID09IGMpIHsKCSAgICAgICAgICAgdmFsaWRhdGVTdHJpbmcuZGVsZXRlQ2hhckF0KGhlYWQpOwoJICAgICAgICB9ZWxzZSB7CgkgICAgICAgICAgIHZhbGlkYXRlU3RyaW5nLmFwcGVuZChjKTsKCSAgICAgICAgfQoJICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4gKHZhbGlkYXRlU3RyaW5nLnRvU3RyaW5nKCkpOwoJICAgICB9CiAgICAJcmV0dXJuIHZhbGlkYXRlU3RyaW5nLmxlbmd0aCgpID09IDA7Cgl9Cn0=