Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**Модифициран XML код
- Даден е некој модифициран XML код. Модифицираниот XML код ги користи симболите '[' и ']', за отварање и затворање на таг, соодветно, наместо стандардните '
- ' и '>'. Треба да се провери дали сите тагови во кодот се правилно вгнездени (дали кодот е валиден) т.е. дали секој отворен таг има соодветен затворен таг со истото име на соодветното место во кодот. За поедноставување, дадено е дека секој отворен таг мора да има свој затворен таг и дека таговите немаат атрибути.
- На влез е даден бројот на редови во кодот и самиот XML со секој таг во посебен ред, а на излез треба да се испечати 1 или 0 за валиден или невалиден код, соодветно.
- Објаснување: Во модифицираниот XML код секој отворен таг е во облик [imeNaTag], а соодветниот затворен таг е во облик [/imeNaTag].
- Пример за правилно вгнездени тагови во XML e:
- [tag1]
- [tag2]
- Podatok
- [/tag2]
- [/tag1]
- Пример за неправилно вгнездени тагови во XML e:
- [tag1]
- [tag2]
- Podatok
- [/tag1]
- [/tag2]
- Sample input:
- 20
- [Korisnik]
- [Ime]
- Jana
- [/Ime]
- [Prezime]
- [Korisnik]
- [Ime]
- Ivan
- [/Ime]
- [Prezime]
- [/Prezime]
- [MBR]
- 2807986455092
- [/MBR]
- [/Korisnik]
- [/Prezime]
- [MBR]
- 2908986455091
- [/MBR]
- [/Korisnik]
- Sample output:
- 1
- Sample input:
- 10
- [Korisnik]
- [Ime]
- Jana
- [/Ime]
- [Prezime]
- [/Ime]
- [MBR]
- 2807986455092
- [/MBR]
- [/Korisnik]
- Sample output:
- 0
- Sample input:
- 10
- [Korisnik]
- [Ime]
- Jana
- [/Ime]
- [Prezime]
- [/Prezime]
- [MBR]
- 2807986455092
- [/MBR]
- [/Kor]
- Sample output:
- 0
- Sample input:
- 10
- [Korisnik]
- [Ime]
- Jana
- [MBR]
- [/Ime]
- [MBR]
- 2807986455092
- [/MBR]
- [/MBR]
- [/Korisnik]
- Sample output:
- 0
- Sample input:
- 2
- [text]
- [/text]
- Sample output:
- 1
- Sample input:
- 5
- [Korisnik]
- [/Ime]
- Jana
- [Ime]
- [/Korisnik]
- Sample output:
- 0
- Sample input:
- 10
- [MBR]
- [Broj]
- 2807986455092
- [/Broj]
- [Ime]
- [Broj]
- Jana
- [/Ime]
- [/Broj]
- [/MBR]
- Sample output:
- 0
- Sample input:
- 9
- [Tabela]
- [Red]
- [Podatok]
- [/Podatok]
- [Podatok]
- Primer
- [/Podatok]
- [/Red
- [/Tabela]
- Sample output:
- 0
- Sample input:
- 12
- [body]
- [div]
- [a]
- [/a]
- [/div]
- [div]
- [a]
- [/a]
- [/div]
- [/body]
- [p]
- [/p]
- Sample output:
- 1
- Sample input:
- 11
- [html]
- [title]
- goodbye
- [/title]
- [body]
- h3]
- [ul]
- [/ul]
- [/h3]
- [/body]
- [/html]
- Sample output:
- 0
- */
- //CODE
- import java.util.Scanner;
- import java.util.Stack;
- public class XML {
- private static int xlmEquality(String[] items) {
- Stack<String> stack = new Stack<>();
- for (int i = 0; i < items.length; i++) {
- if (items[i].charAt(0) == '[' && items[i].charAt(items[i].length() - 1) == ']') {
- if (items[i].charAt(1) == '/') {
- StringBuilder sb = new StringBuilder(stack.peek());
- sb.insert(1, '/');
- if (sb.toString().equals(items[i]))
- stack.pop();
- else
- return 0;
- } else
- stack.push(items[i]);
- }
- }
- if (stack.isEmpty())
- return 1;
- return 0;
- }
- public static void main(String[] args) {
- Scanner input = new Scanner(System.in);
- int rows = Integer.parseInt(input.nextLine());
- String[] items = new String[rows];
- for (int i = 0; i < rows; i++) {
- items[i] = input.nextLine();
- }
- System.out.println(xlmEquality(items));
- input.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement