Statistics

Problem Statement for "DNAConstruction"

Problem Statement

A DNA molecule is formed by two nucleotide chains of equal length. Each nucleotide in the first chain must form a bond with the nucleotide at the same position in the second chain. There are four types of nucleotides: A, C, G and T. Each type of nucleotide can only form a bond with one other type: A can only bond with T, and G can only bond with C. These pairs, AT and CG, are called complementary pairs. No other bonds are allowed.
You are given a String nucleotides, where each character is an available nucleotide. Return the length of the longest DNA molecule that can be created using only the available nucleotides. The length of a DNA molecule is the number of nucleotides in either one of its chains. If no DNA molecule can be created, return 0.

Definition

Class:
DNAConstruction
Method:
maxLength
Parameters:
String
Returns:
int
Method signature:
int maxLength(String nucleotides)
(be sure your method is public)

Notes

  • For the purposes of this problem we assume that there is no restriction for the set of nucleotides in each DNA chain.

Constraints

  • nucleotides will contain between 1 and 50 characters, inclusive.
  • Each character in nucleotides will be 'A','C','G' or 'T'.

Examples

  1. "AGGCA"

    Returns: 1

    The set of nucleotides contains only one complementary pair CG.

  2. "GGTACAGTTT"

    Returns: 3

    The set of nucleotides contains one CG pair and two AT pairs.

  3. "ACCACCAACCA"

    Returns: 0

    The set of nucleotides contains only A and C nucleotides, which aren't complementary.

  4. "AAAAAAAAAAAAAAAAACCCCCCCCGGGGGGGGTTTTTTTTTTTTTTTTT"

    Returns: 25

  5. "G"

    Returns: 0

  6. "GTGT"

    Returns: 0

  7. "A"

    Returns: 0

  8. "ACC"

    Returns: 0

  9. "GCGA"

    Returns: 1

  10. "GGATTTC"

    Returns: 2

  11. "AACTGTTCC"

    Returns: 3

  12. "CGAGCATTC"

    Returns: 4

  13. "TGAGTAGTC"

    Returns: 3

  14. "CTATACACTAGC"

    Returns: 4

  15. "CGGGGGAAA"

    Returns: 1

  16. "TTAGGAGAGTT"

    Returns: 3

  17. "AACCTAACGTTAGAT"

    Returns: 6

  18. "TAGACTTTACCCAAGT"

    Returns: 7

  19. "GGCTCAGAAAAACGGAC"

    Returns: 5

  20. "GAATGTCTGCTAGACC"

    Returns: 8

  21. "TTCCCCCAGCAAAAGTAA"

    Returns: 5

  22. "TCCCTCCACTCGGCATGGGG"

    Returns: 8

  23. "GGAGCAAACCACAATGACT"

    Returns: 6

  24. "AGATTTCAACGAGGTTACA"

    Returns: 8

  25. "TTCCGGACGTAGTCAGTCTAC"

    Returns: 9

  26. "GTCCACCTGAGATTCTCGATAAC"

    Returns: 10

  27. "CAAATGTGGGGCAGCTCCTGCT"

    Returns: 10

  28. "ACTAGGGATACGTGGCACTTATTG"

    Returns: 10

  29. "CAAAACGAACTTTAGGACCGTAGCTAT"

    Returns: 11

  30. "AAGGATGTACCAATGGGGCGGACGT"

    Returns: 8

  31. "ACCGGCAATGTAGGAGATTTTAATTTGC"

    Returns: 12

  32. "GCAGATCAGGCTTCATCCCGCCTAACCGG"

    Returns: 12

  33. "GAGTTATACCTTCAGTGAAGGCGTAAGAGAG"

    Returns: 11

  34. "CTTCAGCCCGCGCACAATAACATCGGTGTAT"

    Returns: 13

  35. "GTAATATCGCGACGGGATAGCTTGCAGGAGGT"

    Returns: 12

  36. "ACATGTCCTCCCGCCTTCCATGGACTCAGGTTT"

    Returns: 11

  37. "AGATCAAGAAAATCCCCAGCTCCGGCATACGAC"

    Returns: 10

  38. "GTATCGGAACCGAGCGCTTGAAGCACGGTGGA"

    Returns: 12

  39. "CGAAAGTGTCCAACGAAGAGAACGCGGACATTTACTA"

    Returns: 14

  40. "GGTTACCGTACCTTTGCGTACTATCCAGAATGAAAT"

    Returns: 17

  41. "TTATTCTGTACAACTGGTGAACTTCAGTAGTCTCG"

    Returns: 15

  42. "TACTGTTAACATTGCGTCAGCTACTCGATACTGTTA"

    Returns: 15

  43. "AATTGGGCGCCCACTACCATGGCATCAGCAGGATGTAGA"

    Returns: 17

  44. "GGCATCCGACGGAAGTGCTGGCCGGCCGATCAGTATCATGT"

    Returns: 19

  45. "TGATCGGCTCGCCGGGAGCGCCTCACGTGGTACCAATGC"

    Returns: 19

  46. "GCGCCACCGCAGTTAATAGGGCGTGCGGAAGAGCCCTGGGC"

    Returns: 17

  47. "TCAGCTTTGATATCAAGGTTGGACAACGCGTAAAAGTGCGCG"

    Returns: 18

  48. "CTGCCGTGGTCACCGAGTCCCTCTTCGACTTGCAAGTAGTTAACCG"

    Returns: 19

  49. "TCTGTAGACCTTGACAGAAGGAATTCCACCTGATCGAATACCGA"

    Returns: 19

  50. "TGCGTTGTTACGATCGCGTCTCCGTGGCCAGGTGCGATCTAGAAA"

    Returns: 19

  51. "GCGCATTAGTACGTTAACGGAACGGTTCGACTAGGAAGGCCAAGTACTT"

    Returns: 21

  52. "CCTGAAGTAGAATGGAGCAGCCTCCACACTTACTGCTTATAACGGCA"

    Returns: 20

  53. "TGATGGACAAGGCTTCACAGACCTCTTTGAATTGTAGTTGCATATTT"

    Returns: 20

  54. "AGGGCGCGATGTTAATAGCTCCCGCTTAGAATTGAACATCCCTCGAACCC"

    Returns: 22

  55. "GTGCGGGTTGCGCT"

    Returns: 3

  56. "CGACTACAGTCACCCTCGCCAGCTGCTTA"

    Returns: 11

  57. "TACGGAGTGCGTGATGGCTGCGCGTCGCCATGGTCGTGAGGGAG"

    Returns: 15

  58. "CCGTCAACGCCTATCAGG"

    Returns: 7

  59. "GAC"

    Returns: 1

  60. "TCA"

    Returns: 1

  61. "ACTAGGTTACAGTAACACGTACGGGCAAGATGTGACCATGCCACCACA"

    Returns: 19

  62. "TTACTTCGCTTAACACTGAGGGGGAACGT"

    Returns: 13

  63. "TGGCATGACGACGCTCGCGGGAA"

    Returns: 9

  64. "CT"

    Returns: 0

  65. "CCCCCGGG"

    Returns: 3

  66. "AT"

    Returns: 1

  67. "GGTACAGTTTAGGCCCTTA"

    Returns: 8

  68. "ACGCT"

    Returns: 2


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: