Given a Binary Tree, find vertical sum of the nodes that are in same vertical line. Print all sums through different vertical lines. Examples: 1 / \ 2 3 / \ / \ 4 5 6 7 The tree has 5 vertical lines Vertical-Line-1 has only one node 4 => vertical sum is 4 Vertical-Line-2: has only one node 2=> vertical sum is 2 Vertical-Line-3: has three nodes: 1,5,6 => vertical sum is 1+5+6 = 12 Vertical-Line-4: has only one node 3 => vertical sum is 3 Vertical-Line-5: has only one node 7 => vertical sum is 7 So expected output is 4, 2, 12, 3 and 7
Sort every string in the array(can be done fast with radix-sort) then while doing that for each string store in a hash-table the original and the sorted one, when you encounter a string that's already in the hash-table print these pair of anagrams.
ReplyDeleteoops, didn't notice you will have duplicate prints, so instead of printing the pair you can add the current anagram to the hash-table slot where the sorted version appears. at the end print everything.
ReplyDelete