Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- public class ValidTime {
- private static final String NOT_POSSIBLE = "NOT POSSIBLE";
- public static void main(String[] args) {
- int[] digits1 = new int[]{1, 8, 3, 2, 6, 4};
- int[] digits2 = new int[]{0, 0, 0, 7, 8, 9};
- int[] digits3 = new int[]{2, 4, 5, 9, 5, 9};
- int[] digits4 = new int[]{0, 0, 0, 0, 0, 0};
- System.out.println(solution(digits1));
- System.out.println(solution(digits2));
- System.out.println(solution(digits3));
- System.out.println(solution(digits4));
- }
- public String solution(int A, int B, int C, int D, int E, int F) {
- int[] digits = new int[]{A, B, C, D, E, F};
- return solution(digits);
- }
- public static String solution(int[] digits) {
- Arrays.sort(digits);
- if (isValid(digits)) return toString(digits);
- if (!isHourValid(digits)) return NOT_POSSIBLE;
- if (!isMinuteValid(digits) && !isSecondValid(digits)) return NOT_POSSIBLE;
- if (!isMinuteValid(digits)) {
- swap(digits, 1, 2);
- if (isHourValid(digits) && isMinuteValid(digits)) return toString(digits);
- }
- if (!isSecondValid(digits)) {
- swap(digits, 3, 4);
- if (isSecondValid(digits)) return toString(digits);
- }
- if (!isSecondValid(digits)) {
- swap(digits, 1, 4);
- if (isHourValid(digits) && isSecondValid(digits)) return toString(digits);
- }
- return NOT_POSSIBLE;
- }
- private static boolean isValid(int[] digits) {
- return isHourValid(digits) && isMinuteValid(digits) && isSecondValid(digits);
- }
- private static boolean isHourValid(int[] digits) {
- return (digits[0] <= 1) || (digits[0] == 2 && digits[1] <= 3);
- }
- private static boolean isMinuteValid(int[] digits) {
- return digits[2] <= 5;
- }
- private static boolean isSecondValid(int[] digits) {
- return digits[4] <= 5;
- }
- private static void swap(int[] array, int i, int j) {
- int tmp = array[i];
- array[i] = array[j];
- array[j] = tmp;
- }
- private static String toString(int[] digits) {
- return String.valueOf(digits[0]) + digits[1] + ":" +
- digits[2] + digits[3] + ":" +
- digits[4] + digits[5];
- }
- }
Add Comment
Please, Sign In to add comment