Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.util.NoSuchElementException;
- import java.util.Stack;
- class XMLNode
- {
- XMLNode(String name)
- {
- children = new XMLNode[20];
- parent = null;
- nChildren = 0;
- this.name = name;
- zatvoren = false;
- }
- void addChild(XMLNode node)
- {
- node.parent = this;
- children[nChildren++] = node;
- }
- void print()
- {
- System.out.printf("Node: %s, zatvoren: %s\n", name, zatvoren);
- for (int i = 0; i < nChildren; i++)
- children[i].print();
- }
- boolean zatvoren;
- int nChildren;
- String name;
- XMLNode parent;
- XMLNode children[];
- }
- public class CheckXML {
- static boolean eZatvoracki(String tag)
- {
- return tag.charAt(1) == '/';
- }
- static String imeTag(String tag)
- {
- if (!eTag(tag))
- return "";
- return (eZatvoracki(tag) ? tag.substring(2, tag.length()-1) : tag.substring(1, tag.length()-1));
- }
- static boolean eTag(String tag)
- {
- return tag.charAt(0) == '[';
- }
- public static void main(String[] args) throws Exception{
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String s = br.readLine();
- int n = Integer.parseInt(s);
- String [] redovi = new String[n];
- for(int i=0;i<n;i++)
- redovi[i] = br.readLine();
- int valid = 1;
- Stack<String> stack = new Stack<String>();
- XMLNode rootyRoot = new XMLNode("[]");
- XMLNode root = new XMLNode(imeTag(redovi[0]));
- rootyRoot.addChild(root);
- XMLNode aktiven = root;
- for (int i = 1; i < redovi.length; i++)
- {
- String red = redovi[i];
- if (eTag(red))
- {
- if (!eZatvoracki(red))
- {
- XMLNode roditel = aktiven;
- aktiven = new XMLNode(imeTag(red));
- if (roditel != null)
- roditel.addChild(aktiven);
- else
- {
- valid = 0;
- break;
- }
- }
- else
- {
- //=System.out.printf("Aktiven: %s se zatvora so %s\n", aktiven.name, imeTag(red));
- if (aktiven.name.equals(imeTag(red)))
- aktiven.zatvoren = true;
- else
- {
- valid = 0;
- break;
- }
- aktiven = aktiven.parent;
- }
- //System.out.println(imeTag(redovi[i]));
- }
- }
- //root.print();
- System.out.println(valid);
- br.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment