Guest User

Untitled

a guest
Jan 20th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import java.util.Objects;
  7. import java.util.SortedSet;
  8. import java.util.TreeSet;
  9.  
  10. /*
  11. * To change this license header, choose License Headers in Project Properties.
  12. * To change this template file, choose Tools | Templates
  13. * and open the template in the editor.
  14. */
  15. /**
  16. *
  17. * @author Ossu
  18. */
  19. class DNAString {
  20.  
  21. private final static Character[] DATASET = {'A', 'C', 'G', 'T'};
  22. private final static int MIN_RANGE = 0;
  23. private final static int MAX_RANGE = 1000;
  24. private final static String INVALID_CHAR = "Invalid input,not matched with dataset";
  25. private final static String CHAR_LENGTH_EXCEEDS = "Input does not allow to be exceeds more than " + MAX_RANGE + " characters";
  26.  
  27. private static String returnFinalComplement(String reverseStr) {
  28. StringBuilder finalStr = new StringBuilder();
  29. for (char c : reverseStr.toCharArray()) {
  30. finalStr.append(
  31. c == 'G' ? 'C'
  32. : c == 'C' ? 'G'
  33. : c == 'T' ? 'A'
  34. : c == 'A' ? 'T'
  35. : c
  36. );
  37.  
  38. }
  39. return finalStr.toString();
  40. }
  41. // char[] charlist = list.toCharArray();
  42. // for (int i = 0; i < charlist.length; i++) {
  43. // switch (charlist[i]) {
  44. // case 'A': {
  45. // charlist[i] = 'T';
  46. // }
  47. // break;
  48. // case 'T': {
  49. // charlist[i] = 'A';
  50. // }
  51. // break;
  52. // case 'G': {
  53. // charlist[i] = 'C';
  54. // }
  55. // break;
  56. // case 'C': {
  57. // charlist[i] = 'G';
  58. // }
  59. // break;
  60. // }
  61. // }
  62. // return new String(charlist);
  63. //
  64. // }
  65.  
  66. public static boolean validateInput(String input) {
  67. List<Character> chars = new ArrayList<>();
  68. for (char c : input.toCharArray()) {
  69. chars.add(c);
  70. }
  71. boolean result = false;
  72. SortedSet<Character> mySet = new TreeSet<>(chars);
  73. for (int i = 0; i <= mySet.size();) {
  74. for (Character c : mySet) {
  75. result = Objects.equals(c, DATASET[i]);
  76. i++;
  77. if (!result) {
  78. break;
  79. }
  80. }
  81. if (result) {
  82. return result;
  83. } else {
  84. break;
  85. }
  86. }
  87. return result;
  88.  
  89. }
  90.  
  91. public static String reverseIt(String source) {
  92. int i, len = source.length();
  93. StringBuilder dest = new StringBuilder(len);
  94. for (i = (len - 1); i >= 0; i--) {
  95. dest.append(source.charAt(i));
  96. }
  97. return dest.toString();
  98. }
  99.  
  100. public static void main(String[] args) throws IOException {
  101.  
  102. BufferedReader readInput = new BufferedReader(new InputStreamReader(System.in));
  103. String source = readInput.readLine();
  104. if (source.length() > MIN_RANGE && source.length() <= MAX_RANGE) {
  105. boolean validateInput = validateInput(source);
  106. if (validateInput) {
  107. // String reverseString = reverseIt(source);
  108. String reverseString = reverseIt(source);
  109. System.out.println(returnFinalComplement(reverseString));
  110. // String revereStringComplement = returnFinalComplement(reverseString);
  111. } else {
  112. System.out.println(INVALID_CHAR);
  113. }
  114. } else {
  115. System.out.println(CHAR_LENGTH_EXCEEDS);
  116. }
  117. }
  118. }
Add Comment
Please, Sign In to add comment