The input is string[] like below.
"CSE111: CSE110 MATH101"
"CSE110:"
I need to order the strings based on some logic. For example my output should be a string[] like
"CSE110","MATH122","CSE111"
My question is
- While scanning through the input array, if one string is picked to be the first string of the output array, then how do I skip all occurrences of that particular string, while I continue to process the
string[]for the second output string etc..
Eg:
Input:
"CSE111: CSE110 MATH101"
"CSE110:"
If CSE110 is picked to be the first string in the output, then when I scan through the input string[] for the second string to be a part of output, I should not consider CSE110.
How can I achieve this? The answer I am looking forward to is something like:
- Store the input in a string[]
- loop through the strings one by one using strtok or stringstream >> operator.
- Once the first string is found …blah blah blah ….
Hope my question is clear enough. I will be glad to provide more details.
Edit1:More Explanation
The strings represent the order in which the classes need to taken . If a class has pre-requisite , the pre-requisite has to be taken first. ie. if Input is
"CSE111: CSE110 MATH101"
"CSE110:"
The class CSE111 has a pre-requisite of CSE110 MATH101 . So I need to consider first CSE1110(No Pre-requisite) – MATH101((No Pre-requisite) and then CSE111 . (Further Ties can broken in alphabetical order. )
I hope this helps..
I hopefully got it now: For a string of the form
A: B C D, the courseAhasB,C, andDas prerequisites.In that case you want a mapping from a course to its prerequisites, e.g.:
Now you can fill a
Prerequisitesby tokenizing, using the first part as the key and aCourseSetas the value.As it seems that you just want one of the possible orders for all courses in the input, you could then do the following:
a>bifahasbas a prerequisitebdoesn’t haveaas a prerequisite use e.g. the lexicographical order