Guest User

Untitled

a guest
Dec 13th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. import java.util.Arrays;
  2.  
  3. public class ValidTime {
  4. private static final String NOT_POSSIBLE = "NOT POSSIBLE";
  5.  
  6. public static void main(String[] args) {
  7. int[] digits1 = new int[]{1, 8, 3, 2, 6, 4};
  8. int[] digits2 = new int[]{0, 0, 0, 7, 8, 9};
  9. int[] digits3 = new int[]{2, 4, 5, 9, 5, 9};
  10. int[] digits4 = new int[]{0, 0, 0, 0, 0, 0};
  11. System.out.println(solution(digits1));
  12. System.out.println(solution(digits2));
  13. System.out.println(solution(digits3));
  14. System.out.println(solution(digits4));
  15. }
  16.  
  17. public String solution(int A, int B, int C, int D, int E, int F) {
  18. int[] digits = new int[]{A, B, C, D, E, F};
  19. return solution(digits);
  20. }
  21.  
  22. public static String solution(int[] digits) {
  23. Arrays.sort(digits);
  24.  
  25. if (isValid(digits)) return toString(digits);
  26.  
  27. if (!isHourValid(digits)) return NOT_POSSIBLE;
  28. if (!isMinuteValid(digits) && !isSecondValid(digits)) return NOT_POSSIBLE;
  29.  
  30. if (!isMinuteValid(digits)) {
  31. swap(digits, 1, 2);
  32. if (isHourValid(digits) && isMinuteValid(digits)) return toString(digits);
  33. }
  34. if (!isSecondValid(digits)) {
  35. swap(digits, 3, 4);
  36. if (isSecondValid(digits)) return toString(digits);
  37. }
  38. if (!isSecondValid(digits)) {
  39. swap(digits, 1, 4);
  40. if (isHourValid(digits) && isSecondValid(digits)) return toString(digits);
  41. }
  42.  
  43. return NOT_POSSIBLE;
  44. }
  45.  
  46. private static boolean isValid(int[] digits) {
  47. return isHourValid(digits) && isMinuteValid(digits) && isSecondValid(digits);
  48. }
  49.  
  50. private static boolean isHourValid(int[] digits) {
  51. return (digits[0] <= 1) || (digits[0] == 2 && digits[1] <= 3);
  52. }
  53.  
  54. private static boolean isMinuteValid(int[] digits) {
  55. return digits[2] <= 5;
  56. }
  57.  
  58. private static boolean isSecondValid(int[] digits) {
  59. return digits[4] <= 5;
  60. }
  61.  
  62. private static void swap(int[] array, int i, int j) {
  63. int tmp = array[i];
  64. array[i] = array[j];
  65. array[j] = tmp;
  66. }
  67.  
  68. private static String toString(int[] digits) {
  69. return String.valueOf(digits[0]) + digits[1] + ":" +
  70. digits[2] + digits[3] + ":" +
  71. digits[4] + digits[5];
  72. }
  73. }
Add Comment
Please, Sign In to add comment