Statistics

Problem Statement for "Splicer"

Problem Statement

A DNA sequence is a sequence of letters from the set {A,C,T,G}. Define a "repeat sequence" to be a DNA sequence which consists entirely of a smaller DNA sequence concatenated 2 or more times. Create a class Splicer that contains the method splice that takes two DNA Strings as input and returns a String which is a repeat sequence made by splicing the two DNA strings together.
A splice consists of concatenating the two input strings in either order, or of inserting one of the inputs strings between adjacent characters of the other string. Splicing ACT with GA can result in ACTGA, GAACT, AGACT, ACGAT, or GACTA. If it is possible to produce more than one repeat sequence from the inputs, return the one that comes earliest alphabetically. If it is not possible to produce a repeat sequence, return the 10 character string "IMPOSSIBLE".

Definition

Class:
Splicer
Method:
splice
Parameters:
String, String
Returns:
String
Method signature:
String splice(String s1, String s2)
(be sure your method is public)

Constraints

  • s1 contains between 1 and 50 characters, inclusive.
  • s2 contains between 1 and 50 characters, inclusive.
  • s1 and s2 contain only the uppercase characters 'A','C','T','G'.

Examples

  1. "ACTT"

    "AC"

    Returns: "ACTACT"

    Splice the "AC" into the "ACTT" between the last two characters.

  2. "AAAAAAT"

    "TAAAT"

    Returns: "AAATAAATAAAT"

  3. "ACGACGACG"

    "GACA"

    Returns: "IMPOSSIBLE"

  4. "ACACA"

    "CAC"

    Returns: "ACACACAC"

    "CACACACA" is also possible, but is later than ACACACAC alphabetically.

  5. "ACTACT"

    "ACTA"

    Returns: "IMPOSSIBLE"

  6. "ACTGACA"

    "ACTGACA"

    Returns: "ACTGACAACTGACA"

  7. "TACATAC"

    "ATACA"

    Returns: "ATACATACATAC"

  8. "TACATAC"

    "A"

    Returns: "ATACATAC"

  9. "GTAAGTAAGTA"

    "A"

    Returns: "AGTAAGTAAGTA"

  10. "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"

    "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"

    Returns: "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"

  11. "TGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"

    "GTGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"

    Returns: "GTGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"

  12. "G"

    "TACTAGCTAGCTAGCTAGCTAGCTAGCTAGC"

    Returns: "TAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGC"

  13. "G"

    "T"

    Returns: "IMPOSSIBLE"

  14. "T"

    "T"

    Returns: "TT"

  15. "TA"

    "ATATATATATATATATATATATATATATATATATATATATATATATATAT"

    Returns: "ATATATATATATATATATATATATATATATATATATATATATATATATATAT"

  16. "AT"

    "A"

    Returns: "IMPOSSIBLE"

  17. "TCTCT"

    "CTC"

    Returns: "CTCTCTCT"

  18. "CACAC"

    "ACACA"

    Returns: "ACACACACAC"

  19. "A"

    "C"

    Returns: "IMPOSSIBLE"

  20. "CAT"

    "TAC"

    Returns: "IMPOSSIBLE"

  21. "ACTGGG"

    "GTAAAATTT"

    Returns: "IMPOSSIBLE"

  22. "ACATACATACATACATACATACATACATACATACATACATACATACAT"

    "GTACATACATACATACATACATACATACATACATACATACATACATACA"

    Returns: "IMPOSSIBLE"

  23. "ACAACAAC"

    "A"

    Returns: "AACAACAAC"

  24. "ACTTACT"

    "AC"

    Returns: "ACTACTACT"

  25. "T"

    "A"

    Returns: "IMPOSSIBLE"

  26. "AAGCAGC"

    "GC"

    Returns: "AGCAGCAGC"

  27. "TTT"

    "T"

    Returns: "TTTT"

  28. "AGAG"

    "GAGA"

    Returns: "AGAGAGAG"

  29. "AA"

    "AAA"

    Returns: "AAAAA"

  30. "ACTG"

    "GTAC"

    Returns: "IMPOSSIBLE"

  31. "CAC"

    "ACACA"

    Returns: "ACACACAC"

  32. "AC"

    "ACTT"

    Returns: "ACTACT"

  33. "A"

    "A"

    Returns: "AA"

  34. "ACTACT"

    "ACT"

    Returns: "ACTACTACT"

  35. "AGAGGAAA"

    "A"

    Returns: "IMPOSSIBLE"

  36. "ATCA"

    "CT"

    Returns: "CATCAT"

  37. "GA"

    "GA"

    Returns: "GAGA"

  38. "TA"

    "AT"

    Returns: "ATAT"

  39. "A"

    "CCA"

    Returns: "CACA"

  40. "G"

    "G"

    Returns: "GG"

  41. "AGC"

    "AGCA"

    Returns: "IMPOSSIBLE"

  42. "AAA"

    "AA"

    Returns: "AAAAA"

  43. "CAC"

    "A"

    Returns: "ACAC"

  44. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    "GG"

    Returns: "IMPOSSIBLE"

  45. "TAAAT"

    "AAAAAAT"

    Returns: UNKNOWN-OUTPUT10291821323

  46. "GTAG"

    "AT"

    Returns: "AGTAGT"


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: