Problem Statement
The Grid-In questions on the SAT require that the test-taker fill in a numerical answer from a small set of symbols. In particular, each answer is a String of four characters.
An answer which satisfies the symbol constraints (the first item on the list) but does not satisfy other constraints (such as "1 23", "8//5", or "9.4." is considered malformed. Furthermore, any answer with a denominator of 0 is considered malformed.
You will be given a String[] answer whose elements each contain exactly 4 characters. You are to return a String[] with the same number of elements as the number of elements in answer. Each element of the return value should be one of three possible responses: "CORRECT" for a correct answer, "INCORRECT" if incorrect, or "MALFORMED" if the answer does not conform to the guidelines above. The i-th element of the return value should correspond to the i-th element of answer.
- Each character is one of ' ' (a space), '.', '/', or a digit '0'-'9'.
- Spaces are interpreted as unneeded characters. Whitespace must not be surrounded by non-space characters.
- The '.' is a decimal point; only one may appear in any answer. The '/' is a division sign; only one may appear in any answer. No answer may contain both a '.' and a '/'.
- All characters to the left of a '/' are interpreted as the numerator, and all characters to the right of a '/' are interpreted as the denominator. If there is a '/', both the numerator and the denominator must contain at least one digit '0'-'9', and the denominator must not be 0.
- At least one digit '0'-'9' must appear in each answer.
An answer which satisfies the symbol constraints (the first item on the list) but does not satisfy other constraints (such as "1 23", "8//5", or "9.4." is considered malformed. Furthermore, any answer with a denominator of 0 is considered malformed.
You will be given a String[] answer whose elements each contain exactly 4 characters. You are to return a String[] with the same number of elements as the number of elements in answer. Each element of the return value should be one of three possible responses: "CORRECT" for a correct answer, "INCORRECT" if incorrect, or "MALFORMED" if the answer does not conform to the guidelines above. The i-th element of the return value should correspond to the i-th element of answer.
Definition
- Class:
- GradingGridIns
- Method:
- score
- Parameters:
- String[], int[], int[]
- Returns:
- String[]
- Method signature:
- String[] score(String[] answer, int[] lower, int[] upper)
- (be sure your method is public)
Notes
- Leading zeros are allowed.
- An answer which has a denominator of 0 will be considered malformed.
Constraints
- answer will contain between 1 and 50 elements, inclusive.
- Each element of answer will contain exactly 4 characters.
- Each character in an answer will be a ' ', '.', '/', or a digit '0'-'9'.
- upper and lower will each contain exactly 2 elements between 0 and 9999, inclusive.
- Neither lower[1] nor upper[1] will be 0.
- lower[0] / lower[1] will be less than or equal to upper[0] / upper[1].
Examples
{"4/7 "," 4/7","4/07","8/14",".571",".572"}{4,7}{4,7}Returns: {"CORRECT", "CORRECT", "CORRECT", "CORRECT", "CORRECT", "CORRECT" }Each of these is correct. Notice that neither .571 nor .572 are equal to 4 divided by 7.{" 4/7","1.01","1.02"," 000"}{0,1}{1,1}Returns: {"CORRECT", "CORRECT", "INCORRECT", "CORRECT" }Any answer within the allowed range is acceptable. Notice also that 1.01, which is greater than the upper bound, is acceptable because there are no possible submissions greater than 1 and less than 1.01.{"1.15","1 14","1.14"," 8/7"}{1142,1000}{1142,1000}Returns: {"INCORRECT", "MALFORMED", "CORRECT", "CORRECT" }{" ","...."," . ","1 23","8//5","9.4.","85/ ","/123","123/"}{1,1}{1,1}Returns: {"MALFORMED", "MALFORMED", "MALFORMED", "MALFORMED", "MALFORMED", "MALFORMED", "MALFORMED", "MALFORMED", "MALFORMED" }{"1/0 "}{0,1}{9999,1}Returns: {"MALFORMED" }