import java.util.Scanner;
public class Main {
public static void main
(String[] args
) { Scanner scanner
= new Scanner
(System.
in); int n = 40;
System.
out.
println("Please enter here up to " + n
+ " symbols for my string:");
String s1
= scanner.
nextLine();
if (s1.length() > n) {
s1 = s1.substring(0, n);
}
System.
out.
println("My string was: " + s1
);
int balance = 0;
boolean isBalanced = true;
for (int i = 0; i < s1.length(); i++) {
char ch = s1.charAt(i);
if (ch == '(') {
balance++;
} else if (ch == ')') {
balance--;
}
if (balance < 0) {
isBalanced = false;
break;
}
}
if (balance != 0) {
isBalanced = false;
}
if (isBalanced) {
System.
out.
println("Результат: Баланс дужок дотримано"); } else {
System.
out.
println("Результат: Баланс дужок ПОРУШЕНО"); }
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2Nhbm5lciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IG4gPSA0MDsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQbGVhc2UgZW50ZXIgaGVyZSB1cCB0byAiICsgbiArICIgc3ltYm9scyBmb3IgbXkgc3RyaW5nOiIpOwogICAgICAgIAogICAgICAgIFN0cmluZyBzMSA9IHNjYW5uZXIubmV4dExpbmUoKTsKCiAgICAgICAgaWYgKHMxLmxlbmd0aCgpID4gbikgewogICAgICAgICAgICBzMSA9IHMxLnN1YnN0cmluZygwLCBuKTsKICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTXkgc3RyaW5nIHdhczogIiArIHMxKTsKCiAgICAgICAgaW50IGJhbGFuY2UgPSAwOwogICAgICAgIGJvb2xlYW4gaXNCYWxhbmNlZCA9IHRydWU7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgczEubGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICBjaGFyIGNoID0gczEuY2hhckF0KGkpOwogICAgICAgICAgICBpZiAoY2ggPT0gJygnKSB7CiAgICAgICAgICAgICAgICBiYWxhbmNlKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2ggPT0gJyknKSB7CiAgICAgICAgICAgICAgICBiYWxhbmNlLS07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChiYWxhbmNlIDwgMCkgewogICAgICAgICAgICAgICAgaXNCYWxhbmNlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChiYWxhbmNlICE9IDApIHsKICAgICAgICAgICAgaXNCYWxhbmNlZCA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzQmFsYW5jZWQpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCLQoNC10LfRg9C70YzRgtCw0YI6INCR0LDQu9Cw0L3RgSDQtNGD0LbQvtC6INC00L7RgtGA0LjQvNCw0L3QviIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigi0KDQtdC30YPQu9GM0YLQsNGCOiDQkdCw0LvQsNC90YEg0LTRg9C20L7QuiDQn9Ce0KDQo9Co0JXQndCeIik7CiAgICAgICAgfQogICAgfQp9