Problem Statement
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
"ACTT"
"AC"
Returns: "ACTACT"
Splice the "AC" into the "ACTT" between the last two characters.
"AAAAAAT"
"TAAAT"
Returns: "AAATAAATAAAT"
"ACGACGACG"
"GACA"
Returns: "IMPOSSIBLE"
"ACACA"
"CAC"
Returns: "ACACACAC"
"CACACACA" is also possible, but is later than ACACACAC alphabetically.
"ACTACT"
"ACTA"
Returns: "IMPOSSIBLE"
"ACTGACA"
"ACTGACA"
Returns: "ACTGACAACTGACA"
"TACATAC"
"ATACA"
Returns: "ATACATACATAC"
"TACATAC"
"A"
Returns: "ATACATAC"
"GTAAGTAAGTA"
"A"
Returns: "AGTAAGTAAGTA"
"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
"GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
Returns: "GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
"TGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
"GTGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
Returns: "GTGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG"
"G"
"TACTAGCTAGCTAGCTAGCTAGCTAGCTAGC"
Returns: "TAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGC"
"G"
"T"
Returns: "IMPOSSIBLE"
"T"
"T"
Returns: "TT"
"TA"
"ATATATATATATATATATATATATATATATATATATATATATATATATAT"
Returns: "ATATATATATATATATATATATATATATATATATATATATATATATATATAT"
"AT"
"A"
Returns: "IMPOSSIBLE"
"TCTCT"
"CTC"
Returns: "CTCTCTCT"
"CACAC"
"ACACA"
Returns: "ACACACACAC"
"A"
"C"
Returns: "IMPOSSIBLE"
"CAT"
"TAC"
Returns: "IMPOSSIBLE"
"ACTGGG"
"GTAAAATTT"
Returns: "IMPOSSIBLE"
"ACATACATACATACATACATACATACATACATACATACATACATACAT"
"GTACATACATACATACATACATACATACATACATACATACATACATACA"
Returns: "IMPOSSIBLE"
"ACAACAAC"
"A"
Returns: "AACAACAAC"
"ACTTACT"
"AC"
Returns: "ACTACTACT"
"T"
"A"
Returns: "IMPOSSIBLE"
"AAGCAGC"
"GC"
Returns: "AGCAGCAGC"
"TTT"
"T"
Returns: "TTTT"
"AGAG"
"GAGA"
Returns: "AGAGAGAG"
"AA"
"AAA"
Returns: "AAAAA"
"ACTG"
"GTAC"
Returns: "IMPOSSIBLE"
"CAC"
"ACACA"
Returns: "ACACACAC"
"AC"
"ACTT"
Returns: "ACTACT"
"A"
"A"
Returns: "AA"
"ACTACT"
"ACT"
Returns: "ACTACTACT"
"AGAGGAAA"
"A"
Returns: "IMPOSSIBLE"
"ATCA"
"CT"
Returns: "CATCAT"
"GA"
"GA"
Returns: "GAGA"
"TA"
"AT"
Returns: "ATAT"
"A"
"CCA"
Returns: "CACA"
"G"
"G"
Returns: "GG"
"AGC"
"AGCA"
Returns: "IMPOSSIBLE"
"AAA"
"AA"
Returns: "AAAAA"
"CAC"
"A"
Returns: "ACAC"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"GG"
Returns: "IMPOSSIBLE"
"TAAAT"
"AAAAAAT"
Returns: UNKNOWN-OUTPUT10291821323
"GTAG"
"AT"
Returns: "AGTAGT"