Problem Statement
Definition: for two strings X and Y, we say that a string X has a subsequence Y if and only if it's possible to remove 0 or more characters in X so that the remaining characters form the string Y. For example, "ABCDEFFF" has subsequences "B", "ABFF" and "ABCDEFFF", but doesn't have subsequences "XSFJ", "BA" and "CCDD".
Kids often want to write a letter to Santa but they make a typo and send them to Satan instead. We say that the address written on an envelope is good if and only if it has the subsequence "SANTA" but it doesn't have the subsequence "SATAN" - otherwise the letter can be sent to the wrong place!
Limak already wrote a string S as the address. It's guaranteed that S doesn't have the subsequence "SATAN", but possibly it doesn't have the subsequence "SANTA" either. Your task is to add some (0 or more) characters anywhere into S, including its beginning and end, so that it is a good address, as defined above.
You are given the
- X has a subsequence S.
- X has the subsequence "SANTA".
- X doesn't have the subsequence "SATAN".
- X has at most 1050 characters.
- Each character in X must be an uppercase English letter 'A' - 'Z'.
Definition
- Class:
- OnlySanta
- Method:
- solve
- Parameters:
- String
- Returns:
- String
- Method signature:
- String solve(String S)
- (be sure your method is public)
Notes
- It can be proved that a valid answer exists for any valid input.
Constraints
- S will contain between 1 and 1000 characters, inclusive.
- Each character in S will be an uppercase English letter: 'A' - 'Z'.
- S will not have the subsequence "SATAN".
Examples
"STANA"
Returns: "STANTA"
Limak already wrote "STANA". He can add a single character 'T' to obtain "STANTA". This string has the subsequence "SANTA" and doesn't have the subsequence "SATAN".
"STN"
Returns: "SANTNA"
Here, one correct solution is to add "AN" between 'S' and 'T' and also add 'A' at the end of the string. The returned string is: "S(A)(N)TN(A)", where brackets represent added characters.
"RATSNOOOA"
Returns: "DEARATSNOOOSANTA"
"SXAYNTA"
Returns: "OOOOSOXAYNTOOOOAOOO"
One correct answer is simply "SXAYNTA" because this given string already has the subsequence "SANTA". You don't have to minimize the number of added characters though.
"SNTA"
Returns: "SANTA"
"ASNTA"
Returns: "SASNTAS"
"NIELATA"
Returns: "SANIELATAJA"
"X"
Returns: "SSAAXNNTTAA"
"ATANSTAN"
Returns: "ATANSTANTA"
"TNSTNAA"
Returns: "TNSANTNAATA"
"ABCDEFGHIJK"
Returns: "ABCDEFGHIJKSANTA"
"ATANATANSTNSTNSTNASNASNTSNSTNSTASTASTA"
Returns: "ATANATANSTNSTNSTNASNASNTSNSTNSTASTASTATA"
"DONATAN"
Returns: "DONATANSANTA"
"SANTA"
Returns: "SANTATA"
"S"
Returns: "SANTA"
"A"
Returns: "ASANTA"
"T"
Returns: "TSANTA"
"N"
Returns: "NSANTA"
"AA"
Returns: "AASANTA"
"SAN"
Returns: "SANTA"
"SATA"
Returns: "SANATATA"
"STAAN"
Returns: "STAANTA"
"ATAN"
Returns: "ATANSANTA"
"SATA"
Returns: "SANATATA"
"ATANSATA"
Returns: "ATANSANATATA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
Returns: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASANTA"
"AAABABABABAAABAABABBAAABBBBAABBBBBBBABAAABBAAAAABB"
Returns: "AAABABABABAAABAABABBAAABBBBAABBBBBBBABAAABBAAAAABBSANTA"
"NZIJDIFYERVJAOALCGXOVLDQFZAORAHDIGYOJKNVIAZTPCMXLV"
Returns: "NZIJDIFYERVJAOALCGXOVLDQFZAORAHDIGYOJKNVIAZTPCMXLVSANTA"
"TATA"
Returns: "TATASANTA"
"STANANANTTTTSSSSNNNAA"
Returns: "STANANANTTTTSSSSNNNAATA"
"SSSTNTNTSAANSNSTTT"
Returns: "SSSTNTNTSAANSNSTTTTA"
"SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS"
Returns: "SANSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTA"
"SANTASATASATASATASATASATASATASATASATASATA"
Returns: "SANTASATASATASATASATASATASATASATASATASATATA"
"ATNAS"
Returns: "ATNASANTA"
"NATAS"
Returns: "NATASANTA"
"ANATS"
Returns: "ANATSANTA"
"ANANASSSTAANANA"
Returns: "ANANASSSTAANANATA"
"SONTANA"
Returns: "SONTANATA"
"ZATAN"
Returns: "ZATANSANTA"
"ZOLTAN"
Returns: "ZOLTANSANTA"
"DEVIL"
Returns: "DEVILSANTA"
"SNAKE"
Returns: "SANNAKETA"
"SASASASASANNNNNNSASANNTA"
Returns: "SASASASASANNNNNNSASANNTATA"
"STNTNTASASSAAS"
Returns: "SANTNTNTASASSAASTA"
"STNTNTASASSAASNTNTNTNT"
Returns: "STNTNTASASSAASNTNTNTNTTA"
"SNXNNNXNXSNSNXSSXSXXNXXXXSSNXXXSXXXXXXXSNXXXNXXXXS"
Returns: "SANNXNNNXNXSNSNXSSXSXXNXXXXSSNXXXSXXXXXXXSNXXXNXXXXSTA"
"TAAASTTASTTATATSSATATAATSSASAASSASATATSATASSASAATT"
Returns: "TAAASANTTASTTATATSSATATAATSSASAASSASATATSATASSASAATTTA"
"TSNTTTTNSTSOOSNOSOSTONSOSNNOOSNTNOSOONNOSSNSTNTNTS"
Returns: "TSANNTTTTNSTSOOSNOSOSTONSOSNNOOSNTNOSOONNOSSNSTNTNTSTA"
"TATANNAAAATANNTANNATANTTATAAAATANATTAAATNAAATATANN"
Returns: "TATANNAAAATANNTANNATANTTATAAAATANATTAAATNAAATATANNSANTA"
"MSSTXTASUMAUASMUMTXUSBMXBTAAMUAMATAAMMUXXABUBBMSSA"
Returns: "MSANSTXTASUMAUASMUMTXUSBMXBTAAMUAMATAAMMUXXABUBBMSSATA"
"SASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASATNAAT"
Returns: "SASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASASATNAATTA"
"SATN"
Returns: "SATNTA"
"NANANNNAASATSNSSNSTSSTNT"
Returns: "NANANNNAASATSNSSNSTSSTNTTA"
"SA"
Returns: "SANATA"
"TATSSANAANAANTSSNTTSASATATSSAAS"
Returns: "TATSSANAANAANTSSNTTSASATATSSAASTA"
"SXAYTWN"
Returns: "SXAYTWNTA"
"SATNN"
Returns: "SATNNTA"
"TAKNSTGTTHATUHA"
Returns: "TAKNSANTGTTHATUHATA"
"TN"
Returns: "TNSANTA"
"SAT"
Returns: "SANATTA"
"NSATN"
Returns: "NSATNTA"
"TNSTAST"
Returns: "TNSANTASTTA"
"SATNTA"
Returns: "SATNTATA"
"SSATNN"
Returns: "SSATNNTA"
"ZSZZTSTSTASZZATAATASATTTSAZSSAASASSST"
Returns: "ZSANZZTSTSTASZZATAATASATTTSAZSSAASASSSTTA"
"ANSAT"
Returns: "ANSANATTA"
"ATANAN"
Returns: "ATANANSANTA"
"ANSATA"
Returns: "ANSANATATA"
"SANAN"
Returns: "SANANTA"
"NTSAT"
Returns: "NTSANATTA"