Problem Statement
X X X X X X X X X EAST NORTH SOUTH WEST INTERNATIONALWe require that the bars be centered over their titles, using the more leftward of the two middle positions for a title whose length is even. We require that there must be at least one space between adjacent titles, and that the number of spaces between adjacent bars be constant. In the example above, there are 9 spaces between adjacent bars.
Create a class Histogram that contains a method draw that is given a
The histogram must preserve the order given in title and value. The spacing between bars should be as small as possible. Each element of the return should be as short as possible; this implies that the final element of the return will have no leading spaces, and that no element of the return will have trailing spaces.
Definition
- Class:
- Histogram
- Method:
- draw
- Parameters:
- String[], int[]
- Returns:
- String[]
- Method signature:
- String[] draw(String[] title, int[] value)
- (be sure your method is public)
Constraints
- title will contain between 2 and 10 elements inclusive.
- Each element of title will contain between 1 and 15 characters inclusive, all uppercase letters 'A'-'Z'.
- value will contain the same number of elements as title.
- Each element of value will be between 1 and 10 inclusive.
Examples
{"EAST","NORTH","SOUTH","WEST","INTERNATIONAL"}
{1,2,1,4,1}
Returns: { " X", " X", " X X", " X X X X X", "EAST NORTH SOUTH WEST INTERNATIONAL" }
This is the example given in the problem.
{"A","B","C"}
{2,1,2}
Returns: { "X X", "X X X", "A B C" }
This corresponds to the following histogram: X X X X X A B C
{"VERYLARGE", "XX"}
{10,1}
Returns: { " X", " X", " X", " X", " X", " X", " X", " X", " X", " X X", "VERYLARGE XX" }
{"VERYLARGER", "XX"}
{1,10}
Returns: { " X", " X", " X", " X", " X", " X", " X", " X", " X", " X X", "VERYLARGER XX" }
{"VERYLARGER", "BIG"}
{1,1}
Returns: { " X X", "VERYLARGER BIG" }
{"ABCDEFGHIJKLMNO","A","A","A","A","A","A","A","A","BB"}
{10,10,10,10,10,10,10,10,10,10}
Returns: { " X X X X X X X X X X", " X X X X X X X X X X", " X X X X X X X X X X", " X X X X X X X X X X", " X X X X X X X X X X", " X X X X X X X X X X", " X X X X X X X X X X", " X X X X X X X X X X", " X X X X X X X X X X", " X X X X X X X X X X", "ABCDEFGHIJKLMNO A A A A A A A A BB" }
{"X","ABCDEF","Y","DEFG"}
{6,5,4,3}
Returns: { "X", "X X", "X X X", "X X X X", "X X X X", "X X X X", "X ABCDEF Y DEFG" }
{"ONE","TWO","THREE","FOUR","FIVE"}
{1,2,3,4,5}
Returns: { " X", " X X", " X X X", " X X X X", " X X X X X", "ONE TWO THREE FOUR FIVE" }
{"HARVEST","HUNTERS","FULL","HALF","WANING","WAXING"}
{1,1,1,1,1,4}
Returns: { " X", " X", " X", " X X X X X X", "HARVEST HUNTERS FULL HALF WANING WAXING" }
{"MEASLES","XXX","PNEUMONIA","AGUE"}
{3,3,1,1}
Returns: { " X X", " X X", " X X X X", "MEASLES XXX PNEUMONIA AGUE" }
{"MEASLES","XXX","PNEUMONIA","AGUE"}
{3,4,1,4}
Returns: { " X X", " X X X", " X X X", " X X X X", "MEASLES XXX PNEUMONIA AGUE" }
{"ABC","DEF","ABC"}
{7,7,7}
Returns: { " X X X", " X X X", " X X X", " X X X", " X X X", " X X X", " X X X", "ABC DEF ABC" }
{"ABC","DEF","ABC"}
{2,1,7}
Returns: { " X", " X", " X", " X", " X", " X X", " X X X", "ABC DEF ABC" }
{"ABC","DEFG","ABC"}
{2,1,1}
Returns: { " X", " X X X", "ABC DEFG ABC" }
{"TOPCODER","BOTTOMCODER","BOTTOMFEEDER","TOPDOG"}
{2,10,10,4}
Returns: { " X X", " X X", " X X", " X X", " X X", " X X", " X X X", " X X X", " X X X X", " X X X X", "TOPCODER BOTTOMCODER BOTTOMFEEDER TOPDOG" }
{"EVEN","ODD","ONE","XXXXXXXXXXXXXXX","SEVEN"}
{8,2,5,8,5}
Returns: { " X X", " X X", " X X", " X X X X", " X X X X", " X X X X", " X X X X X", " X X X X X", "EVEN ODD ONE XXXXXXXXXXXXXXX SEVEN" }
{"T","FW","JMSJVPJFHFEAAAE","JQIGGMYQZ","VOROIGDJJPNTQKU"}
{10,3,4,10,3}
Returns: { "X X", "X X", "X X", "X X", "X X", "X X", "X X X", "X X X X X", "X X X X X", "X X X X X", "T FW JMSJVPJFHFEAAAE JQIGGMYQZ VOROIGDJJPNTQKU" }
{ "VERYLARGE", "XX" }
{ 10, 1 }
Returns: { " X", " X", " X", " X", " X", " X", " X", " X", " X", " X X", "VERYLARGE XX" }
{ "A", "SDJFOISE", "OIWNMEFW", "J", "WIOWEOFIWN", "SJEIFMTNSIEOSA", "SE", "SIEMFNSIE", "SD", "A" }
{ 2, 10, 1, 6, 8, 3, 8, 10, 1, 3 }
Returns: { " X X", " X X", " X X X X", " X X X X", " X X X X X", " X X X X X", " X X X X X", " X X X X X X X", "X X X X X X X X", "X X X X X X X X X X", "A SDJFOISE OIWNMEFW J WIOWEOFIWN SJEIFMTNSIEOSA SE SIEMFNSIE SD A" }
{ "EAST", "NORTH", "SOUTH", "WEST", "INTERNATIONAL" }
{ 1, 2, 1, 4, 1 }
Returns: { " X", " X", " X X", " X X X X X", "EAST NORTH SOUTH WEST INTERNATIONAL" }