Problem Statement
I have a
Definition
- Class:
- Popularity
- Method:
- sort
- Parameters:
- String[]
- Returns:
- String[]
- Method signature:
- String[] sort(String[] reply)
- (be sure your method is public)
Constraints
- reply will contain between 1 and 50 elements, inclusive.
- Each element of reply will contain between 3 and 50 characters, inclusive.
- Each element of reply will contain only uppercase letters ('A'-'Z') and exactly one space, neither leading nor trailing.
Examples
{"DON XI","EAGER TOPLEASE","BJ SMITH","BJ JONES","BJ BJ","DON SMITH","EAGER SMITH"}
Returns: {"BJ SMITH", "BJ JONES", "BJ BJ", "DON XI", "EAGER TOPLEASE", "DON SMITH", "EAGER SMITH" }
"BJ" is the most popular name with 3 occurrences as a first name. "EAGER" and "DON are tied with 2 occurrences each. Within the 3 occurrence names they are listed in the same order as they replied. This is followed by the 2 occurrence names in the same order as they replied.
{"BOB JONES", "BOB ADAMS", "BOBBY ADAMS", "BOB ADAMS"}
Returns: {"BOB JONES", "BOB ADAMS", "BOB ADAMS", "BOBBY ADAMS" }
BOB is more popular than BOBBY. Note that I have two friends with the same name and they must both appear in the popularity order.
{"XENOHILLIUSHABBERDASHERTIMOTHEOUS ALBRIGHT"}
Returns: {"XENOHILLIUSHABBERDASHERTIMOTHEOUS ALBRIGHT" }
{"A BB","C AA","A AB","C DE"}
Returns: {"A BB", "C AA", "A AB", "C DE" }
{"FRED EVANS","AL BAKER","CAL ADAMS","ED FARMER","AL ADAMS","CAL DETROIT"}
Returns: {"AL BAKER", "CAL ADAMS", "AL ADAMS", "CAL DETROIT", "FRED EVANS", "ED FARMER" }
AL and CAL are tied for most popular with ED and FRED tied at a lower popularity level. So the AL's and CAL's are listed first in the same order as they appear in reply, followed by ED and FRED, also in their original order.
{"A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X"}
Returns: {"A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X" }
{"A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","A X","C X","A Y","A X","A X","A X","A X","A X","B X","B Z","C X"}
Returns: {"A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A X", "A Y", "A X", "A X", "A X", "A X", "A X", "C X", "B X", "B Z", "C X" }
{"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST A"}
Returns: {"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST A" }
{"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST A","ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRS A","ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST A"}
Returns: {"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST A", "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRST A", "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRS A" }
{"X A","XX A","Y A","X A","Y A","XX B","XX A"}
Returns: {"XX A", "XX B", "XX A", "X A", "Y A", "X A", "Y A" }
{"A D","D D","D D","D D","D D","D D","D D"}
Returns: {"D D", "D D", "D D", "D D", "D D", "D D", "A D" }
{"A D","D D","D D","D D","D D","D D","D D","A D","B D","B D"}
Returns: {"D D", "D D", "D D", "D D", "D D", "D D", "A D", "A D", "B D", "B D" }
{"A B", "B C", "DDD AAA", "AAA CCC"}
Returns: {"A B", "B C", "DDD AAA", "AAA CCC" }
{"A B", "B C", "DDD AAA", "AAA CCC", "DDD C"}
Returns: {"DDD AAA", "DDD C", "A B", "B C", "AAA CCC" }
{"A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E"}
Returns: {"A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E", "A A", "A B", "A C", "A D", "A E" }
{"DON XI", "EAGER TOPLEASE", "BJ SMITH", "BJ JONES", "BJ BJ", "DON SMITH", "EAGER SMITH", "A B", "A B", "A B", "C D", "C D", "F D", "F D", "A S", "A S" }
Returns: {"A B", "A B", "A B", "A S", "A S", "BJ SMITH", "BJ JONES", "BJ BJ", "DON XI", "EAGER TOPLEASE", "DON SMITH", "EAGER SMITH", "C D", "C D", "F D", "F D" }
{"A B", "C D", "C D", "A B" }
Returns: {"A B", "C D", "C D", "A B" }
{"AA A", "AA B", "AA C" }
Returns: {"AA A", "AA B", "AA C" }
{"A A", "A B", "A C", "A A" }
Returns: {"A A", "A B", "A C", "A A" }
{"A A", "A B", "A C", "B D", "C G", "B F" }
Returns: {"A A", "A B", "A C", "B D", "B F", "C G" }
{"B A", "BB A", "B A", "C A", "C A", "C A" }
Returns: {"C A", "C A", "C A", "B A", "B A", "BB A" }