Balanced Brackets - Data Types - More Exercise -> Java
Здравейте,
Не мога да разбера задачата, изкарвам 57 от 100, с моето решение, може ли малко помощ? По-скоро не схващам какво се иска и не съм съобразила, на иде-то си работи.Обходих граничните случаи, за които се сетих. Рефактурирах си един код на колега от C#, минава със 100 от 100 неговия, а пък двата кода се държат еднакво на outputa-a в иде-то. Не мога да схвана....
Благодаря предварително!
Условие:
1.Balanced Brackets
You will receive n lines. On those lines, you will receive one of the following:
- Opening bracket – “(“,
- Closing bracket – “)” or
- Random string
Your task is to find out if the brackets are balanced. That means after every closing bracket should follow an opening one. Nested parentheses are not valid, and if two consecutive opening brackets exist, the expression should be marked as unbalanced.
Input
- On the first line, you will receive n – the number of lines, which will follow
- On the next n lines, you will receive “(”, “)” or another string
Output
You have to print “BALANCED”, if the parentheses are balanced and “UNBALANCED” otherwise.
Constraints
- n will be in the interval [1…20]
- The length of the stings will be between [1…100] characters
Examples
Input |
Output |
|
Input |
Output |
8 ( 5 + 10 ) * 2 + ( 5 ) -12 |
BALANCED |
|
6 12 * ) 10 + 2 - ( 5 + 10 )
|
UNBALANCED |
Моя код :
import java.util.Scanner;
public class balancedBrackets {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int inputLines = Integer.parseInt(scan.nextLine());
int count = 0;
boolean isBalance = false;
for (int i = 1; i <= inputLines; i++) {
String input = scan.nextLine();
if (i % 2 != 0) {
count++;
if (count % 2 != 0) {
if ("(".equals(input)) {
isBalance = true;
} else {
isBalance = false;
break;
}
} else {
if (")".equals(input)) {
isBalance = true;
} else {
isBalance = false;
break;
}
}
}
if (i % 2 == 0) {
if ("()".equals(input) || "(".equals(input)) {
isBalance = false;
break;
}
}
if (inputLines == i && "(".equals(input)) {
isBalance = false;
break;
}
}
if (!isBalance) {
System.out.println("UNBALANCED");
} else {
System.out.println("BALANCED");
}
}
}
Привет,
Сега разбрах, ами вярваш или не всъщност дебъгвах. Проблема ми е в другия компютър този главния на втория етаж хаха . В даден момент реших, че може би скобите трябва да са само на нечетни редове и ще получавам серия от изрази, без да съм асимилира както трябва условието. Благодаря много особено за кода, като го видях ми просветна съвсем, че съм правила тъпотии хаха.