A New Order
Practice
4.8 (16 votes)
Depth first search
Easy
Graphs
Problem
77% Success 3099 Attempts 30 Points 5s Time Limit 256MB Memory 1024 KB Max Code

Consider a new order of english alphabets (a to z), that we are not aware of. What we have though, dictionary of words, ordered according to the new order.

Our task is to give each alphabet a rank, ordered list of words. The rank of an alphabet is the minimum integer R that can be given to it, such that:

if alphabet Ai has rank Ri and alphabet Aj has Rj, then

  • Rj > Ri if and only if Aj > Ai
  • Rj < Ri if and only if Aj < Ai

Points to note:

  • We only need to find the order of alphabets that are present in the words
  • There might be some cases where a strict ordering of words cannot be inferred completely, given the limited information. In that case, give the least possible Rank to every alphabet
  • It can be assumed that there will be no direct or indirect conflict in different inferences got from the input

Input:

  • First line consists of integer 'W', the number of words. 1 <= W <= 100
  • Second line onwards, there are 'W' lines, given ordered list of words. The words will be non-empty, and will be of length <= 20 characters. Also all the characters will be lowercase alphabets, a to z

Output:

The alphabets, in order of their Rank, for alphabets with the same rank, print them in the order as we know it today

Examples

1)

Input: 2 ba ab

Output: b a

Explanation: ab comes after ba implies that b < a

2)

Input: 3 abc aca ca

Ouput: ab c

Explanation: from the first 2 words, we know b < c, and from the last 2 words, we know a < c. We don't have an ordering between a and b, so we give both of them the same rank, and print them in the order as we know today: ab

Please login to use the editor

You need to be logged in to access the code editor

Loading...

Please wait while we load the editor

Loading...
Results
Custom Input
Run your code to see the output
Submissions
Please login to view your submissions
Similar Problems
Points:30
8 votes
Tags:
AlgorithmsDepth First SearchGraphs
Points:30
9 votes
Tags:
Depth First SearchEasy
Points:30
174 votes
Tags:
ApprovedDepth First SearchEasyGraphsOpen