Problem Statement
You are given a
Note that two occurrences of s may overlap. For example, "ababa" contains "aba" twice.
Definition
- Class:
- TwiceString
- Method:
- getShortest
- Parameters:
- String
- Returns:
- String
- Method signature:
- String getShortest(String s)
- (be sure your method is public)
Notes
- The shortest string which contains s as a contiguous substring twice is always unique.
Constraints
- s will contain between 1 and 50 characters, inclusive.
- Each character in s will be a lowercase letter ('a'-'z').
Examples
"aba"
Returns: "ababa"
This is the example shown in the problem statement.
"xxxxx"
Returns: "xxxxxx"
"topcoder"
Returns: "topcodertopcoder"
"abracadabra"
Returns: "abracadabracadabra"
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Returns: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
"xzxxxxxxxxxtxxxxxxxhxxxxggxxxxxxxxzxxxxxxxxxxxxxxa"
Returns: "xzxxxxxxxxxtxxxxxxxhxxxxggxxxxxxxxzxxxxxxxxxxxxxxaxzxxxxxxxxxtxxxxxxxhxxxxggxxxxxxxxzxxxxxxxxxxxxxxa"
"dd"
Returns: "ddd"
"mstrrrwtsgdcplbixiomtegvevtlzwpkdsqfvg"
Returns: "mstrrrwtsgdcplbixiomtegvevtlzwpkdsqfvgmstrrrwtsgdcplbixiomtegvevtlzwpkdsqfvg"
Tomorrow is the SRM, so let me add 100 random test cases. (No, it wasn't, sorry for flooding test cases for no reason, feel free to replace).
"tvgjtvgjtvgjtvgjtvgjtvgj"
Returns: "tvgjtvgjtvgjtvgjtvgjtvgjtvgj"
"xppcwwzolgtgirirnv"
Returns: "xppcwwzolgtgirirnvxppcwwzolgtgirirnv"
"txtx"
Returns: "txtxtx"
"sbiisj"
Returns: "sbiisjsbiisj"
"mzbzgqfsmnkoililhtimmzbzg"
Returns: "mzbzgqfsmnkoililhtimmzbzgqfsmnkoililhtimmzbzg"
"djuqjdj"
Returns: "djuqjdjuqjdj"
"zxxanzxxanzxxan"
Returns: "zxxanzxxanzxxanzxxan"
"dhkpeakykdhkpeakykdhkpeakykdhkpeakykdhkpeakykd"
Returns: "dhkpeakykdhkpeakykdhkpeakykdhkpeakykdhkpeakykdhkpeakykd"
"fazmvnipucpyccscfazmvnipucpyccsc"
Returns: "fazmvnipucpyccscfazmvnipucpyccscfazmvnipucpyccsc"
"sgsqdcesgsq"
Returns: "sgsqdcesgsqdcesgsq"
"ddddddddddddd"
Returns: "dddddddddddddd"
"laf"
Returns: "laflaf"
"hsvyksiogkoruxfwyclhorrfhsvyksiogk"
Returns: "hsvyksiogkoruxfwyclhorrfhsvyksiogkoruxfwyclhorrfhsvyksiogk"
"hh"
Returns: "hhh"
"rzddzhuerggorzddzhu"
Returns: "rzddzhuerggorzddzhuerggorzddzhu"
"qacufkvqacufkvqacufkvqacufkvqacufkv"
Returns: "qacufkvqacufkvqacufkvqacufkvqacufkvqacufkv"
"slhltlpsskbytzhqlryrqaslhltlpsskbytzhqlryrqaslhlt"
Returns: "slhltlpsskbytzhqlryrqaslhltlpsskbytzhqlryrqaslhltlpsskbytzhqlryrqaslhlt"
"xnbegwjfsekaviiciwrblrnysjfyxnbe"
Returns: "xnbegwjfsekaviiciwrblrnysjfyxnbegwjfsekaviiciwrblrnysjfyxnbe"
"fodsjzeuzfodsjzeuzfodsjz"
Returns: "fodsjzeuzfodsjzeuzfodsjzeuzfodsjz"
"jgndgngbwbzxwssczjmpiwcjgndgn"
Returns: "jgndgngbwbzxwssczjmpiwcjgndgngbwbzxwssczjmpiwcjgndgn"
"zuqrwbcvxajzuqrwbcvxajzuqrwbcvx"
Returns: "zuqrwbcvxajzuqrwbcvxajzuqrwbcvxajzuqrwbcvx"
"qpftryetgqxfnaxfzepstjwumqlutidgmqxqpftryetgqxfn"
Returns: "qpftryetgqxfnaxfzepstjwumqlutidgmqxqpftryetgqxfnaxfzepstjwumqlutidgmqxqpftryetgqxfn"
"lihurcineeilihurcineeilihurcine"
Returns: "lihurcineeilihurcineeilihurcineeilihurcine"
"ooucjooucjooucjooucjooucjooucjooucjo"
Returns: "ooucjooucjooucjooucjooucjooucjooucjooucjo"
"rvgwybajyhdqumxskwwrewnotuucrbtrvgw"
Returns: "rvgwybajyhdqumxskwwrewnotuucrbtrvgwybajyhdqumxskwwrewnotuucrbtrvgw"
"wpegecqtobwpegecqtobwpegecqtobwpegecqtobwpegecqtob"
Returns: "wpegecqtobwpegecqtobwpegecqtobwpegecqtobwpegecqtobwpegecqtob"
"uermbuermbu"
Returns: "uermbuermbuermbu"
"emdyayntlqzmdnqpmapltvmzsytpaeribrrdaiakvfzdoe"
Returns: "emdyayntlqzmdnqpmapltvmzsytpaeribrrdaiakvfzdoemdyayntlqzmdnqpmapltvmzsytpaeribrrdaiakvfzdoe"
"orrbkcioy"
Returns: "orrbkcioyorrbkcioy"
"dqmenwrdqmen"
Returns: "dqmenwrdqmenwrdqmen"
"xmoz"
Returns: "xmozxmoz"
"ppdxotppdxotppdxotppdxotppdxotpp"
Returns: "ppdxotppdxotppdxotppdxotppdxotppdxotpp"
"ovhovhovhovhovhovhovhovho"
Returns: "ovhovhovhovhovhovhovhovhovho"
"tfbuczltuxbvrgsrbhqsptmdatfbuczltuxbvrgsrbhqsptm"
Returns: "tfbuczltuxbvrgsrbhqsptmdatfbuczltuxbvrgsrbhqsptmdatfbuczltuxbvrgsrbhqsptm"
"dozdozd"
Returns: "dozdozdozd"
"rampicvrampicvrampicvrampicvrampicvrampicvrampic"
Returns: "rampicvrampicvrampicvrampicvrampicvrampicvrampicvrampic"
"girdzsyobfwcdjvgwrtnyaxjmuzzmhdgirdzsyobfwcdjvgwrt"
Returns: "girdzsyobfwcdjvgwrtnyaxjmuzzmhdgirdzsyobfwcdjvgwrtnyaxjmuzzmhdgirdzsyobfwcdjvgwrt"
"aycfkkqspbkulgxxmyrbnqkzsifdrgohrqnmbotmaycfkkqsp"
Returns: "aycfkkqspbkulgxxmyrbnqkzsifdrgohrqnmbotmaycfkkqspbkulgxxmyrbnqkzsifdrgohrqnmbotmaycfkkqsp"
"hnxpgmqrxyzpqthshnxpg"
Returns: "hnxpgmqrxyzpqthshnxpgmqrxyzpqthshnxpg"
"lemoaomonswpthxslemoaomonsw"
Returns: "lemoaomonswpthxslemoaomonswpthxslemoaomonsw"
"deftdef"
Returns: "deftdeftdef"
"zvrpoilkzvrpoi"
Returns: "zvrpoilkzvrpoilkzvrpoi"
"fffffffffffffff"
Returns: "ffffffffffffffff"
"qdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvq"
Returns: "qdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvq"
"b"
Returns: "bb"
"juwiyopwjuwiyopwjuwiyopwjuwiyopwjuwiyopwj"
Returns: "juwiyopwjuwiyopwjuwiyopwjuwiyopwjuwiyopwjuwiyopwj"
"ikckqvsyyqpubpmikckqvsyyqpubpmikckqvsyyqpubpmi"
Returns: "ikckqvsyyqpubpmikckqvsyyqpubpmikckqvsyyqpubpmikckqvsyyqpubpmi"
"uxtzwpvxpufhhubsqjdoqt"
Returns: "uxtzwpvxpufhhubsqjdoqtuxtzwpvxpufhhubsqjdoqt"
"qnq"
Returns: "qnqnq"
"ohhzgnoswnucohhzgnoswnucohhzgno"
Returns: "ohhzgnoswnucohhzgnoswnucohhzgnoswnucohhzgno"
"tpmjldhtpmjldht"
Returns: "tpmjldhtpmjldhtpmjldht"
"aygeay"
Returns: "aygeaygeay"
"upupupupupupu"
Returns: "upupupupupupupu"
"jmnczcayhnemeuxpzzbljmnczcayhnemeuxpzzblj"
Returns: "jmnczcayhnemeuxpzzbljmnczcayhnemeuxpzzbljmnczcayhnemeuxpzzblj"
"yumbuindzttbfkmehkkchibyiomeeqotbuesyumbuindz"
Returns: "yumbuindzttbfkmehkkchibyiomeeqotbuesyumbuindzttbfkmehkkchibyiomeeqotbuesyumbuindz"
"xnghujjflfnsytxmjleypmwxhxnghujjf"
Returns: "xnghujjflfnsytxmjleypmwxhxnghujjflfnsytxmjleypmwxhxnghujjf"
"cgrgbjmvzayonzgcgrgbjmvza"
Returns: "cgrgbjmvzayonzgcgrgbjmvzayonzgcgrgbjmvza"
"aesjvqkxlbpqzebpulrjqjbymrhikpcwmaesjvqkxlbpqze"
Returns: "aesjvqkxlbpqzebpulrjqjbymrhikpcwmaesjvqkxlbpqzebpulrjqjbymrhikpcwmaesjvqkxlbpqze"
"ldhuldldhuldldhuldldhul"
Returns: "ldhuldldhuldldhuldldhuldldhul"
"abbnxhssdalayabbnxhssda"
Returns: "abbnxhssdalayabbnxhssdalayabbnxhssda"
"upeup"
Returns: "upeupeup"
"uuljmmswndettpjxgsluul"
Returns: "uuljmmswndettpjxgsluuljmmswndettpjxgsluul"
"lcoivieml"
Returns: "lcoiviemlcoivieml"
"fffffffffff"
Returns: "ffffffffffff"
"ikwyqminqbfqsonustlfkhrbhmibjmikwyqminqbfqson"
Returns: "ikwyqminqbfqsonustlfkhrbhmibjmikwyqminqbfqsonustlfkhrbhmibjmikwyqminqbfqson"
"zyvrttonurwlmkarepqekxookzyvrtton"
Returns: "zyvrttonurwlmkarepqekxookzyvrttonurwlmkarepqekxookzyvrtton"
"cnycnycnycny"
Returns: "cnycnycnycnycny"
"kysitroqbuvxffirtkysitroqbuvxffirtkys"
Returns: "kysitroqbuvxffirtkysitroqbuvxffirtkysitroqbuvxffirtkys"
"chjeoychjeoychjeoychje"
Returns: "chjeoychjeoychjeoychjeoychje"
"prewafwuxon"
Returns: "prewafwuxonprewafwuxon"
"bmqtt"
Returns: "bmqttbmqtt"
"binrbnrmbinrbnrmbinrbnrmbin"
Returns: "binrbnrmbinrbnrmbinrbnrmbinrbnrmbin"
"mm"
Returns: "mmm"
"vwacggzaackjsamsxhggtjjenrnesntibiuv"
Returns: "vwacggzaackjsamsxhggtjjenrnesntibiuvwacggzaackjsamsxhggtjjenrnesntibiuv"
"ckjkslbsckjkslbsckjkslbsckjkslbsckjkslbsck"
Returns: "ckjkslbsckjkslbsckjkslbsckjkslbsckjkslbsckjkslbsck"
"aaaaaaaaaaaaaaaaaaaaa"
Returns: "aaaaaaaaaaaaaaaaaaaaaa"
"osklnhlwfogvmmeaksgyosklnhlwfo"
Returns: "osklnhlwfogvmmeaksgyosklnhlwfogvmmeaksgyosklnhlwfo"
"bjlfgcodtpgfb"
Returns: "bjlfgcodtpgfbjlfgcodtpgfb"
"rwpmyfipdzrvwroujrwpmyfipdzrvwroujr"
Returns: "rwpmyfipdzrvwroujrwpmyfipdzrvwroujrwpmyfipdzrvwroujr"
"hzufizqeurczoflytmmqonaihzufizqeurczoflytmmqo"
Returns: "hzufizqeurczoflytmmqonaihzufizqeurczoflytmmqonaihzufizqeurczoflytmmqo"
"snguycfpeovhzpmrpmokpowasnguycfpeovhzpmrpmokpow"
Returns: "snguycfpeovhzpmrpmokpowasnguycfpeovhzpmrpmokpowasnguycfpeovhzpmrpmokpow"
"zmcnzjuiosxwzfbpgdgfzmcnzjuiosxwzfbpgdgf"
Returns: "zmcnzjuiosxwzfbpgdgfzmcnzjuiosxwzfbpgdgfzmcnzjuiosxwzfbpgdgf"
"kcbltgbilevijawlkcb"
Returns: "kcbltgbilevijawlkcbltgbilevijawlkcb"
"htepauqhutdhvroxomkglxifpehtepa"
Returns: "htepauqhutdhvroxomkglxifpehtepauqhutdhvroxomkglxifpehtepa"
"pop"
Returns: "popop"
"lriiaodhtsnpgwwsnedmqdlskesgphyixry"
Returns: "lriiaodhtsnpgwwsnedmqdlskesgphyixrylriiaodhtsnpgwwsnedmqdlskesgphyixry"
"nott"
Returns: "nottnott"
"dzd"
Returns: "dzdzd"
"udfpzrqbsfdsvru"
Returns: "udfpzrqbsfdsvrudfpzrqbsfdsvru"
"dptomdptomdptomdptomdptomdp"
Returns: "dptomdptomdptomdptomdptomdptomdp"
"xpxzszbzpxp"
Returns: "xpxzszbzpxpxzszbzpxp"
"aaaaaaaa"
Returns: "aaaaaaaaa"
"wfdbwlajsqhincwfd"
Returns: "wfdbwlajsqhincwfdbwlajsqhincwfd"
"doflxkdoflxkdoflxkdoflxkdoflx"
Returns: "doflxkdoflxkdoflxkdoflxkdoflxkdoflx"
"tyzoeznjhnfcfiutsmitvzzwgngtogetyzoe"
Returns: "tyzoeznjhnfcfiutsmitvzzwgngtogetyzoeznjhnfcfiutsmitvzzwgngtogetyzoe"
"kkpgqukkpgqukkpgqukkpg"
Returns: "kkpgqukkpgqukkpgqukkpgqukkpg"
"ablwkipetxablwkipetxablwkipetxablwk"
Returns: "ablwkipetxablwkipetxablwkipetxablwkipetxablwk"
"jrskhqmfpsmjwrirssqjrskh"
Returns: "jrskhqmfpsmjwrirssqjrskhqmfpsmjwrirssqjrskh"
"asviryzxjrzfedjxasviryzxjrzfedjxasvi"
Returns: "asviryzxjrzfedjxasviryzxjrzfedjxasviryzxjrzfedjxasvi"
"a"
Returns: "aa"
"abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy"
Returns: "abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy"
"adfdgdssddssdsdff"
Returns: "adfdgdssddssdsdffadfdgdssddssdsdff"
"ababababababababa"
Returns: "abababababababababa"
"bb"
Returns: "bbb"
"usaushsueaohdueaohusaushuahusaush"
Returns: "usaushsueaohdueaohusaushuahusaushsueaohdueaohusaushuahusaush"
"abcdea"
Returns: "abcdeabcdea"
"abxab"
Returns: "abxabxab"
"xxxxax"
Returns: "xxxxaxxxxax"
"sabsa"
Returns: "sabsabsa"
"ababa"
Returns: "abababa"
"ababab"
Returns: "abababab"
"aaaaaab"
Returns: "aaaaaabaaaaaab"
"abaaba"
Returns: "abaabaaba"
"abcdeabcdabcde"
Returns: "abcdeabcdabcdeabcdabcde"
"abaa"
Returns: "abaabaa"
"xaxxaxx"
Returns: "xaxxaxxaxx"
"ba"
Returns: "baba"
"abac"
Returns: "abacabac"
"zaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: "zaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"abc"
Returns: "abcabc"