Problem Statement
We can define the "value" of a name to be the average position of the letters in that name, counting an 'A' as 1, 'B' as 2, and so on up to 'Z' as 26. So, for example, the value of "BOB" would be (2+15+2)/3 = 6.3333. When given a list of names, we will order them by putting them in order of increasing value. When 2 or more names have exactly the same value, we will break the tie by placing the names that were earlier on the original list earlier on the ordered list.
Create a class Fairness that contains a method fairSort that is given a
Definition
- Class:
- Fairness
- Method:
- fairSort
- Parameters:
- String[]
- Returns:
- String[]
- Method signature:
- String[] fairSort(String[] names)
- (be sure your method is public)
Constraints
- names will contain between 1 and 50 elements inclusive.
- Each element of names will contain between 1 and 20 characters inclusive.
- Each character in each element of names will be an uppercase letter, 'A'-'Z'.
Examples
{"BOB","AAAAAAA","TOM"}
Returns: { "AAAAAAA", "BOB", "TOM" }
BOB = 6.333, AAAAAAA = 1.0, TOM = 16
{"BOOB","TOM","BOBO","AAAA"}
Returns: { "AAAA", "BOOB", "BOBO", "TOM" }
BOOB and BOBO are tied, and since BOOB comes before BOBO in the given list, it must come before BOBO in the sorted list.
{"BOBO","TOM","BOOB","AAAA"}
Returns: { "AAAA", "BOBO", "BOOB", "TOM" }
{"ABE","ABLE","ABE"}
Returns: { "ABE", "ABE", "ABLE" }
{"ADA","SDFS","WERWE","QWEQ","DDD","EWR","EWREWW","AAAAAAAAAAAAAAAAA","AAAAAAA","A"}
Returns: { "AAAAAAAAAAAAAAAAA", "AAAAAAA", "A", "ADA", "DDD", "SDFS", "WERWE", "EWR", "QWEQ", "EWREWW" }
{"PANE","TOM","BONE","AAAA"}
Returns: { "AAAA", "PANE", "BONE", "TOM" }
PANE and BONE are tied, and since PANE comes before BONE in the given list, it must come before BONE in the sorted list.
{"BONE","TOM","PANE","AAAA"}
Returns: { "AAAA", "BONE", "PANE", "TOM" }
{"X"}
Returns: { "X" }
{"ZZ","AA","ZA","AZ","AZM"}
Returns: { "AA", "AZM", "ZA", "AZ", "ZZ" }
{"ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCDEFGHIJKLMNOPQRST","ABCCGFGHIJKLMNOPQRST","ABCGCFGHIJKLMNOPQRSS"}
Returns: { "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCDEFGHIJKLMNOPQRST", "ABCGCFGHIJKLMNOPQRSS", "ABCCGFGHIJKLMNOPQRST" }
{"NOW","IS","THE","TIME","FOR","ALL","GOOD","WOMEN","TO"}
Returns: { "ALL", "GOOD", "THE", "TIME", "FOR", "IS", "WOMEN", "NOW", "TO" }
{"Z","Y","X","A"}
Returns: { "A", "X", "Y", "Z" }
{"DSKJ","K","HOOIEOUIWQ","JKLEWOI","EYWOOOIEW","YYWOQW"}
Returns: { "DSKJ", "K", "JKLEWOI", "HOOIEOUIWQ", "EYWOOOIEW", "YYWOQW" }
{"AAB","AABAABABA","BBAAAA","ABBBBBAAAAAAAAA"}
Returns: { "AAB", "AABAABABA", "BBAAAA", "ABBBBBAAAAAAAAA" }
{"ABBBBBAAAAAAAAA","BBAAAA","AABAABABA","AAB"}
Returns: { "ABBBBBAAAAAAAAA", "BBAAAA", "AABAABABA", "AAB" }
{"AACAA","AABBAAABBAAABBA"}
Returns: { "AACAA", "AABBAAABBAAABBA" }
{"AABBAAABBAAABBA","AACAA"}
Returns: { "AABBAAABBAAABBA", "AACAA" }