You are given a valid XML document, and you have to print the maximum level of nesting in it. Take the depth of the root as .
Input Format
The first line contains , the number of lines in the XML document.
The next lines follow containing the XML document.
Output Format
Output a single line, the integer value of the maximum level of nesting in the XML document.
Sample Input
6
<feed xml:lang='en'>
<title>HackerRank</title>
<subtitle lang='en'>Programming challenges</subtitle>
<link rel='alternate' type='text/html' href='http://hackerrank.com/'/>
<updated>2013-12-25T12:00:00</updated>
</feed>
Sample Output
1
Explanation
Here, the root is a feed tag, which has depth of .
The tags title, subtitle, link and updated all have a depth of .
Thus, the maximum depth is .
XML2 - Find the Maximum Depth Solution-
import xml.etree.ElementTree as etree
maxdepth = 0def depth(elem, level): global maxdepth if (level == maxdepth): maxdepth += 1 for child in elem: depth(child, level + 1)
if __name__ == '__main__': n = int(input()) xml = "" for i in range(n): xml = xml + input() + "\n" tree = etree.ElementTree(etree.fromstring(xml)) depth(tree.getroot(), -1) print(maxdepth)
level+1 is 1 more than maxdepth which is actually the only time max(maxdepth,level+1) would ever increase maxdepth if it was in the same spot because of the recursion increments by 1 and increases the maxdepth by 1's.

0 comments:
Post a Comment
Feel free to share your thoughts and suggestion...