Statistics

Problem Statement for "SimilarDNA"

Problem Statement

With some simplification, a DNA sequence can be described as a string in which each character is 'C', 'G', 'A', or 'T'.

There are three basic types of DNA mutations:

  • Insertions: a character gets added somewhere into the string. For example, if we have the string "CAGAT", the strings "CAGGAT", "ACAGAT", and "CAGATG" are among the strings that can be produced by a single insertion.
  • Deletions: a character gets removed from the string. For example, a deletion can transform "CAGAT" to "AGAT", "CGAT", "CAAT", "CAGT", or "CAGA".
  • Substitutions: a character gets replaced by a different character. For example, from "CAGAT" we may obtain "CAAAT", "CAGAG", "CAGGT", or many other strings.

You are given two DNA sequences A and B. We say that these sequences are similar if B can be obtained from A by at most two mutations (one after another).

Return "similar" if A and B are similar, or "distinct" if they aren't.

Definition

Class:
SimilarDNA
Method:
areSimilar
Parameters:
String, String
Returns:
String
Method signature:
String areSimilar(String A, String B)
(be sure your method is public)

Notes

  • The quotes are not a part of the return value.
  • The return value is case-sensitive: the string must be in all lowercase, exactly as written in the statement.

Constraints

  • A will have between 1 and 50 characters, inclusive.
  • B will have between 1 and 50 characters, inclusive.
  • Each character of A and B will be 'C', 'G', 'A', or 'T'.

Examples

  1. "AAAAA"

    "AACAACA"

    Returns: "similar"

    B can be produced from A by performing two insertions, each adding a 'C'.

  2. "AACAACA"

    "AAAAA"

    Returns: "similar"

    The same as example 0 but in reverse: now we need two deletions.

  3. "AACAACA"

    "AAGAATA"

    Returns: "similar"

    Two substitutions.

  4. "CGATCGAT"

    "CATCGAG"

    Returns: "similar"

    A deletion (the first occurrence of 'G') and a substitution (the last character changes from 'T' to 'G').

  5. "CGATCGAT"

    "CGATCGAT"

    Returns: "similar"

    Zero mutations needed.

  6. "CGATATATAGGA"

    "GGATATACCATA"

    Returns: "distinct"

    Here we would need much more than two mutations.

  7. "AAAAA"

    "AA"

    Returns: "distinct"

  8. "CTTAATTCTCCCATCATGGATGC"

    "AAAGGCGACATACGAGTCTAAGAACTATAGCGTTAG"

    Returns: "distinct"

  9. "CGCCATTACATACGGATGGTGGCGATCAT"

    "C"

    Returns: "distinct"

  10. "CACACGGTGTTCCGGACGCTCCCACAG"

    "GACTACCTTAATGCCTTCTCATCGAAGTCCTTACGACATT"

    Returns: "distinct"

  11. "CTAAT"

    "GCCATAACCTACACTAAGAGTATTACGTCCTTTAACACGTATTGAACTTG"

    Returns: "distinct"

  12. "TCGGCTTCGTGTCGCTCTTTACTCCTTCGTTTCTATGATCGTAC"

    "TCACTCGGAACCAGTGT"

    Returns: "distinct"

  13. "TCTGACACGCGGCGGGCCGTACTAGACACCGGACATATTT"

    "TTCGACTCTCCATCAGTTTCGGCTAGGACCACCAAGGAAGGTCA"

    Returns: "distinct"

  14. "ATCTTATACTGATCCTGTACAATCCTACGGGTTGACCCA"

    "GATGATCTAACCCACGCCCTTGCATACCAACTTTA"

    Returns: "distinct"

  15. "CATACTTGACCGGGCCTTTTGGTTAGCCGGCCGCGATTCGGGCGATT"

    "ATTGCTTTTAAAATTCAGTTCCCAAGCAAG"

    Returns: "distinct"

  16. "CTTAGAAATCGGGAGTAGACGGGAGGCATGTGGTCTACAC"

    "GATCAACTA"

    Returns: "distinct"

  17. "GAAACGATACGGAAACAGCAGGTTCTCGCTAGTGCGGCTAAA"

    "CATGCCAT"

    Returns: "distinct"

  18. "CCATG"

    "CCTT"

    Returns: "similar"

  19. "GAGGG"

    "CGAGAG"

    Returns: "similar"

  20. "AGAAG"

    "TATGAAG"

    Returns: "similar"

  21. "ACTA"

    "TCA"

    Returns: "similar"

  22. "TAT"

    "AT"

    Returns: "similar"

  23. "AG"

    "G"

    Returns: "similar"

  24. "TCACA"

    "TCAC"

    Returns: "similar"

  25. "GTTCC"

    "GTCC"

    Returns: "similar"

  26. "T"

    "C"

    Returns: "similar"

  27. "T"

    "AG"

    Returns: "similar"

  28. "ATAA"

    "GGAA"

    Returns: "similar"

  29. "CAGA"

    "AGA"

    Returns: "similar"

  30. "CG"

    "GC"

    Returns: "similar"

  31. "GGGG"

    "GAC"

    Returns: "distinct"

  32. "T"

    "TC"

    Returns: "similar"

  33. "GGGC"

    "GGTGC"

    Returns: "similar"

  34. "ACA"

    "TA"

    Returns: "similar"

  35. "AT"

    "A"

    Returns: "similar"

  36. "A"

    "T"

    Returns: "similar"

  37. "GTTGA"

    "TA"

    Returns: "distinct"

  38. "T"

    "CT"

    Returns: "similar"

  39. "CATAG"

    "GTAG"

    Returns: "similar"

  40. "AACTA"

    "AACT"

    Returns: "similar"

  41. "CA"

    "A"

    Returns: "similar"

  42. "AGAG"

    "AGGAG"

    Returns: "similar"

  43. "CAAG"

    "CCAG"

    Returns: "similar"

  44. "GTACC"

    "GGTACG"

    Returns: "similar"

  45. "AACA"

    "AAAC"

    Returns: "similar"

  46. "GGGTG"

    "GGGTAGG"

    Returns: "similar"

  47. "GGT"

    "GT"

    Returns: "similar"

  48. "TG"

    "TTGC"

    Returns: "similar"

  49. "CTGTG"

    "GTGT"

    Returns: "similar"

  50. "ATAAT"

    "ACAAT"

    Returns: "similar"

  51. "TT"

    "T"

    Returns: "similar"

  52. "GTAC"

    "GTC"

    Returns: "similar"

  53. "CA"

    "CG"

    Returns: "similar"

  54. "AGGGC"

    "AGCGGGC"

    Returns: "similar"

  55. "CGG"

    "CC"

    Returns: "similar"

  56. "CAATTGAGGCCCTTGGACGGTTTCTGAGTTGGGGACGTGATTTC"

    "CATCGAGGCCCTTGGACGGTTTCTGAGTTGGGGACGTTGATTTC"

    Returns: "distinct"

  57. "GTGCCCAATACCATCATTGCAATCTCTCGAGGGGTCACTGC"

    "CACACCTGCCGCACCAAATGATGCACTTGTCTTGAACCAAGTTACT"

    Returns: "distinct"

  58. "ACGCCAGTTGCCAACAAAAGCACTTATGACTTAGGCGCAT"

    "ACGACCAGTTGCCAACAAAGCACTTATGACTTAGGCGCAT"

    Returns: "similar"

  59. "GGGAGTCCGTAATTTTGCTTAATGGTTCAAGTGGCTTGTCAGG"

    "GGAGTCCGTAATTCTGCTTAATGGTTCAAGTGGCTTTCAGG"

    Returns: "distinct"

  60. "AAATCGCGCAATCCATAAAGTGGAACTATTCAATATGGTTTCATCAAGC"

    "GTTCGATTGCGCGTAAAATGAACTTGCATTCTGTTCCCTATGCG"

    Returns: "distinct"

  61. "CCTTATAGCCAGATAAAGGGGGGTAAGTATCCTCCGTGTC"

    "CCTTTATAGCCAGATACAAGGGGGGTAAGTATCCTCCGTGTC"

    Returns: "similar"

  62. "GGTTCGACTTAGGGAAACGCGAATGTTCGCGTATTTTGAGTCC"

    "GGGTCGACTTAGGGTAAACGCTATGTTAGCGTATTTTGCAGTCC"

    Returns: "distinct"

  63. "CCCCCCCCGCGATCCATGGGACTCCTTCCTTGCTATAGATTGATAT"

    "CCCCCCCCGGCGATCCATGCCGTAGTCCTTCATTGCTATAGATTGATAT"

    Returns: "distinct"

  64. "AGGCCAGTACTTGTCATTGAACAGCAACTTATGCCTACGTGGA"

    "AGGCCAGTACTGTGTCATTGAAGCATTTTGCCTACGTGAA"

    Returns: "distinct"

  65. "GTCCTTACATTGTGACCACCTTAATACATGGTCAAACTGCACTT"

    "GTCCTTACATTGTGACACTTAATTATATGGTTAACTGCATCTT"

    Returns: "distinct"

  66. "CCGACCTATGTCATTAGAAAAGAATCGACGTCATCCCGAGTTCGT"

    "CCGACCTATGTCATTAGAAATGAATCGACGTCATCCCGAGTTCGT"

    Returns: "similar"

  67. "GGAACGTCGTTTGAACTTAGCTACGATGGGTGGTTACAATTCCGCTCCT"

    "CGACCCACGGTGTTTCCGATTATAGCTGTAATCAACACTCCACGCCC"

    Returns: "distinct"

  68. "GGGCAATTTTGGTTAGTGTGGTCGCCCGAGATAGCTAGCATCGC"

    "GGGCAATTTTAGTTAGTGTAGTCGCCCGAGATAGCTAGCATCGC"

    Returns: "similar"

  69. "TCACATGACATTTAGACCGAATCCCTTAGGTAGTGGCTGCACCC"

    "TCACATGACATTTAGACCGAATCCTTAGGTACGTGGCTGCGCCC"

    Returns: "distinct"

  70. "ACATTGCCAACCTCCCCACTTAGTAGGACCGCCATGTATGAATAC"

    "GACCTTCCCCAACTCGTGTACGCTGAACAAAACGATAGAGA"

    Returns: "distinct"

  71. "ACCTTTATTACATACTGTGACATTGGTCGTAACTCACGCA"

    "ACCTTTATTACATACTGTGACATTGGTCGAACTCACGCA"

    Returns: "similar"

  72. "GAAGTTAAACTTACTGGACAAAGCGAGTGTTTGACGACTAGAAC"

    "GAAGTTAAACTTACTGGACAAGCGAGTGTTTGACGACTAGAAC"

    Returns: "similar"

  73. "GGGGCCACGCACCACAACGTGGATACCCTCGAGCACTTGTA"

    "GGGCCACGCACCACAACGTGGATACCCTCGAGCACTAGTA"

    Returns: "similar"

  74. "AGGGCTTGCCCTACAGTCTCGACAAATCTGCCTTCCGTACAACACC"

    "AGGGCTTGCCCTACAGTCTCGACAAATCTGCCTTCCGTACAACACA"

    Returns: "similar"

  75. "GGTCCATCCTATACAAGCAAGTCTTTTTTGTCTGCTTAAAGC"

    "GGGTTCAGCCTATACAAGCAAGTCTCTTTGTCTGCTTTAAAGC"

    Returns: "distinct"

  76. "GGTGTGACCGGGGGTGTGGGGAGGGATCCAACCTAGTGGG"

    "GGTGTGACCGGGGGTGCGGGGGGGATCCAACCTAGTGGG"

    Returns: "similar"

  77. "CATCGTGCTACAGACGATGCGCTGTCCCCTACTGCTCTGAT"

    "CAAGATGCCGCGTAACGGGTTCGTATCAGCTGAGCCCAAAT"

    Returns: "distinct"

  78. "TCTTGCACGCTGGGGCCGCCAAATGTTATCAATCATAATT"

    "TCTTGCACGCTGGGGCCGCCAAATGTTATCAATCATAATT"

    Returns: "similar"

  79. "CTTCAAGGATCCGAAAGGCCCCTCCCCTGGAGTAGGGTGCATTGGG"

    "CTTCAAGGATCCGAAAGGCCCCTCCCCTCGAGTGGGTGATTGGG"

    Returns: "distinct"

  80. "CGTCGACATGGACATCCTCGTGATTCCATCAGGCATTTAGT"

    "CGTCGACATGGACACCTCGTGATTCCATCAGGCATTTAGT"

    Returns: "similar"

  81. "ACATAGCTTAAAGAGTATTGGCGAAGGAAATGCCAACGACCATTG"

    "ACATAGCTTAAAGAGTATTGGCGAAGGAAATGCCAACGACCAGTTG"

    Returns: "similar"

  82. "CGAGGACGTAATTTTTAGGGTGGACGCCCTTATGTCTATCT"

    "CGAGGACGTAATTTATTAGGGTGGACGCCTTATGTCTATCT"

    Returns: "similar"

  83. "CTGCCGATGCGTAGTCCGAGCAGATCGGTGGATCGTGATGGGTTGG"

    "CTGCCGATGCGTAGTCCGAGCAGAGCGGTGGATCGTGATGGGTTGG"

    Returns: "similar"

  84. "GAGATGGTTGCGTTTTGTGTTATGGGGGCTCGTACTGCTGATAT"

    "GAGATGGTTGCGTTTTGTGTTATGGGGGCTCGTACTGCTGATTAT"

    Returns: "similar"

  85. "GGTACAAATAGCGCCTCAGTGAAAGAACTAAAAAGAGTAACAGCCGAA"

    "GGTTACAAATAGCGCCTCAGTGAAAGAACTAAAAAGAGTAACAGCCGAA"

    Returns: "similar"

  86. "CAACGAGGTGTACACGACGTAAAGCGGGCTGTAATCAAACGTCGGA"

    "CAACGAGGTGTACACGACGGAAAGCGGGCTGTAATAAACGTCGGA"

    Returns: "similar"

  87. "CACTAGCCGATATACCGTGACTGCTTACATTACCATCGGCGC"

    "CACTAGCCGAATACCGTGACTGCTTACATTACCATCGGCGC"

    Returns: "similar"

  88. "GTTTCAATGACCGAAAATGTTTGCCGGTGAGGTGAGATGATCC"

    "GTTTCAATGACCGAAAATGTTTGCCGGTGCGGTGAGATGATCC"

    Returns: "similar"

  89. "CAGGACTTGCGATTTTTTGCGATCCGTTCTGGATTAAACCGCGAAA"

    "CAGGACTTGCGATTTTTTGCCGATCCGTTCTAGGATTAAACCGCGAAA"

    Returns: "similar"

  90. "AGCGTGTGCCGCCTACGCACATTAATACCCTCAATGATTTTGATTG"

    "AGCGTGTGCCGCCTACGCACTTGTAATACCCTCAATGATTTTGATTG"

    Returns: "similar"

  91. "GTTACTGTCCAGAGCAAGACCTGACTTGTCTCTGCGAAGTAAACTCAAC"

    "TCCCGTTTCCCACATGACGACAGTTTGGAAAGACTGCA"

    Returns: "distinct"

  92. "GCTGTGCCTACCGTCGCTGCTGACCGCTACTTTGGCGTAT"

    "GCTGTGCCTACCGTCGCTGCTGACAGCTACTTTGGCGTAT"

    Returns: "similar"

  93. "TAGCATTAAGCTCCGGAATGGGACCTGCGACTGTCTAGGC"

    "TAGACATAAGCTCCGGAATGGACCTGCGACTGTCTAGGC"

    Returns: "distinct"

  94. "AAGGCTGCTCGGATATCTAGTTGCCATGCACTCAAATTACAGACCCTGA"

    "AAGGTGTGGGACTCAAATTCTACTTGATGAATACACATACAGGCAC"

    Returns: "distinct"

  95. "GCGGACTGCCTTTTCTGATGGAGCTACCTCAATTGGCATACG"

    "GCGGACTGCCTTTTCTGATGAGCTACCTCGAATTGGCATACG"

    Returns: "similar"

  96. "ACGA"

    "AGCTATT"

    Returns: "distinct"

  97. "AGCTAGCT"

    "GCTAGCTA"

    Returns: "similar"

  98. "AGA"

    "GAG"

    Returns: "similar"

  99. "TGCTCTGACCGTGTTGAGAATATCGGGTTTCGGGCTCATGCCCTACGATG"

    "CGTAACGGACCCATACGCCCATGCGTGATGTAAGAATTGTAAAATAGGGT"

    Returns: "distinct"


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: