Statistics

Problem Statement for "TwiceString"

Problem Statement

You are given a String s. Return the shortest string which contains s as a contiguous substring twice.

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

  1. "aba"

    Returns: "ababa"

    This is the example shown in the problem statement.

  2. "xxxxx"

    Returns: "xxxxxx"

  3. "topcoder"

    Returns: "topcodertopcoder"

  4. "abracadabra"

    Returns: "abracadabracadabra"

  5. "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

    Returns: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

  6. "xzxxxxxxxxxtxxxxxxxhxxxxggxxxxxxxxzxxxxxxxxxxxxxxa"

    Returns: "xzxxxxxxxxxtxxxxxxxhxxxxggxxxxxxxxzxxxxxxxxxxxxxxaxzxxxxxxxxxtxxxxxxxhxxxxggxxxxxxxxzxxxxxxxxxxxxxxa"

  7. "dd"

    Returns: "ddd"

  8. "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).

  9. "tvgjtvgjtvgjtvgjtvgjtvgj"

    Returns: "tvgjtvgjtvgjtvgjtvgjtvgjtvgj"

  10. "xppcwwzolgtgirirnv"

    Returns: "xppcwwzolgtgirirnvxppcwwzolgtgirirnv"

  11. "txtx"

    Returns: "txtxtx"

  12. "sbiisj"

    Returns: "sbiisjsbiisj"

  13. "mzbzgqfsmnkoililhtimmzbzg"

    Returns: "mzbzgqfsmnkoililhtimmzbzgqfsmnkoililhtimmzbzg"

  14. "djuqjdj"

    Returns: "djuqjdjuqjdj"

  15. "zxxanzxxanzxxan"

    Returns: "zxxanzxxanzxxanzxxan"

  16. "dhkpeakykdhkpeakykdhkpeakykdhkpeakykdhkpeakykd"

    Returns: "dhkpeakykdhkpeakykdhkpeakykdhkpeakykdhkpeakykdhkpeakykd"

  17. "fazmvnipucpyccscfazmvnipucpyccsc"

    Returns: "fazmvnipucpyccscfazmvnipucpyccscfazmvnipucpyccsc"

  18. "sgsqdcesgsq"

    Returns: "sgsqdcesgsqdcesgsq"

  19. "ddddddddddddd"

    Returns: "dddddddddddddd"

  20. "laf"

    Returns: "laflaf"

  21. "hsvyksiogkoruxfwyclhorrfhsvyksiogk"

    Returns: "hsvyksiogkoruxfwyclhorrfhsvyksiogkoruxfwyclhorrfhsvyksiogk"

  22. "hh"

    Returns: "hhh"

  23. "rzddzhuerggorzddzhu"

    Returns: "rzddzhuerggorzddzhuerggorzddzhu"

  24. "qacufkvqacufkvqacufkvqacufkvqacufkv"

    Returns: "qacufkvqacufkvqacufkvqacufkvqacufkvqacufkv"

  25. "slhltlpsskbytzhqlryrqaslhltlpsskbytzhqlryrqaslhlt"

    Returns: "slhltlpsskbytzhqlryrqaslhltlpsskbytzhqlryrqaslhltlpsskbytzhqlryrqaslhlt"

  26. "xnbegwjfsekaviiciwrblrnysjfyxnbe"

    Returns: "xnbegwjfsekaviiciwrblrnysjfyxnbegwjfsekaviiciwrblrnysjfyxnbe"

  27. "fodsjzeuzfodsjzeuzfodsjz"

    Returns: "fodsjzeuzfodsjzeuzfodsjzeuzfodsjz"

  28. "jgndgngbwbzxwssczjmpiwcjgndgn"

    Returns: "jgndgngbwbzxwssczjmpiwcjgndgngbwbzxwssczjmpiwcjgndgn"

  29. "zuqrwbcvxajzuqrwbcvxajzuqrwbcvx"

    Returns: "zuqrwbcvxajzuqrwbcvxajzuqrwbcvxajzuqrwbcvx"

  30. "qpftryetgqxfnaxfzepstjwumqlutidgmqxqpftryetgqxfn"

    Returns: "qpftryetgqxfnaxfzepstjwumqlutidgmqxqpftryetgqxfnaxfzepstjwumqlutidgmqxqpftryetgqxfn"

  31. "lihurcineeilihurcineeilihurcine"

    Returns: "lihurcineeilihurcineeilihurcineeilihurcine"

  32. "ooucjooucjooucjooucjooucjooucjooucjo"

    Returns: "ooucjooucjooucjooucjooucjooucjooucjooucjo"

  33. "rvgwybajyhdqumxskwwrewnotuucrbtrvgw"

    Returns: "rvgwybajyhdqumxskwwrewnotuucrbtrvgwybajyhdqumxskwwrewnotuucrbtrvgw"

  34. "wpegecqtobwpegecqtobwpegecqtobwpegecqtobwpegecqtob"

    Returns: "wpegecqtobwpegecqtobwpegecqtobwpegecqtobwpegecqtobwpegecqtob"

  35. "uermbuermbu"

    Returns: "uermbuermbuermbu"

  36. "emdyayntlqzmdnqpmapltvmzsytpaeribrrdaiakvfzdoe"

    Returns: "emdyayntlqzmdnqpmapltvmzsytpaeribrrdaiakvfzdoemdyayntlqzmdnqpmapltvmzsytpaeribrrdaiakvfzdoe"

  37. "orrbkcioy"

    Returns: "orrbkcioyorrbkcioy"

  38. "dqmenwrdqmen"

    Returns: "dqmenwrdqmenwrdqmen"

  39. "xmoz"

    Returns: "xmozxmoz"

  40. "ppdxotppdxotppdxotppdxotppdxotpp"

    Returns: "ppdxotppdxotppdxotppdxotppdxotppdxotpp"

  41. "ovhovhovhovhovhovhovhovho"

    Returns: "ovhovhovhovhovhovhovhovhovho"

  42. "tfbuczltuxbvrgsrbhqsptmdatfbuczltuxbvrgsrbhqsptm"

    Returns: "tfbuczltuxbvrgsrbhqsptmdatfbuczltuxbvrgsrbhqsptmdatfbuczltuxbvrgsrbhqsptm"

  43. "dozdozd"

    Returns: "dozdozdozd"

  44. "rampicvrampicvrampicvrampicvrampicvrampicvrampic"

    Returns: "rampicvrampicvrampicvrampicvrampicvrampicvrampicvrampic"

  45. "girdzsyobfwcdjvgwrtnyaxjmuzzmhdgirdzsyobfwcdjvgwrt"

    Returns: "girdzsyobfwcdjvgwrtnyaxjmuzzmhdgirdzsyobfwcdjvgwrtnyaxjmuzzmhdgirdzsyobfwcdjvgwrt"

  46. "aycfkkqspbkulgxxmyrbnqkzsifdrgohrqnmbotmaycfkkqsp"

    Returns: "aycfkkqspbkulgxxmyrbnqkzsifdrgohrqnmbotmaycfkkqspbkulgxxmyrbnqkzsifdrgohrqnmbotmaycfkkqsp"

  47. "hnxpgmqrxyzpqthshnxpg"

    Returns: "hnxpgmqrxyzpqthshnxpgmqrxyzpqthshnxpg"

  48. "lemoaomonswpthxslemoaomonsw"

    Returns: "lemoaomonswpthxslemoaomonswpthxslemoaomonsw"

  49. "deftdef"

    Returns: "deftdeftdef"

  50. "zvrpoilkzvrpoi"

    Returns: "zvrpoilkzvrpoilkzvrpoi"

  51. "fffffffffffffff"

    Returns: "ffffffffffffffff"

  52. "qdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvq"

    Returns: "qdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvqdvq"

  53. "b"

    Returns: "bb"

  54. "juwiyopwjuwiyopwjuwiyopwjuwiyopwjuwiyopwj"

    Returns: "juwiyopwjuwiyopwjuwiyopwjuwiyopwjuwiyopwjuwiyopwj"

  55. "ikckqvsyyqpubpmikckqvsyyqpubpmikckqvsyyqpubpmi"

    Returns: "ikckqvsyyqpubpmikckqvsyyqpubpmikckqvsyyqpubpmikckqvsyyqpubpmi"

  56. "uxtzwpvxpufhhubsqjdoqt"

    Returns: "uxtzwpvxpufhhubsqjdoqtuxtzwpvxpufhhubsqjdoqt"

  57. "qnq"

    Returns: "qnqnq"

  58. "ohhzgnoswnucohhzgnoswnucohhzgno"

    Returns: "ohhzgnoswnucohhzgnoswnucohhzgnoswnucohhzgno"

  59. "tpmjldhtpmjldht"

    Returns: "tpmjldhtpmjldhtpmjldht"

  60. "aygeay"

    Returns: "aygeaygeay"

  61. "upupupupupupu"

    Returns: "upupupupupupupu"

  62. "jmnczcayhnemeuxpzzbljmnczcayhnemeuxpzzblj"

    Returns: "jmnczcayhnemeuxpzzbljmnczcayhnemeuxpzzbljmnczcayhnemeuxpzzblj"

  63. "yumbuindzttbfkmehkkchibyiomeeqotbuesyumbuindz"

    Returns: "yumbuindzttbfkmehkkchibyiomeeqotbuesyumbuindzttbfkmehkkchibyiomeeqotbuesyumbuindz"

  64. "xnghujjflfnsytxmjleypmwxhxnghujjf"

    Returns: "xnghujjflfnsytxmjleypmwxhxnghujjflfnsytxmjleypmwxhxnghujjf"

  65. "cgrgbjmvzayonzgcgrgbjmvza"

    Returns: "cgrgbjmvzayonzgcgrgbjmvzayonzgcgrgbjmvza"

  66. "aesjvqkxlbpqzebpulrjqjbymrhikpcwmaesjvqkxlbpqze"

    Returns: "aesjvqkxlbpqzebpulrjqjbymrhikpcwmaesjvqkxlbpqzebpulrjqjbymrhikpcwmaesjvqkxlbpqze"

  67. "ldhuldldhuldldhuldldhul"

    Returns: "ldhuldldhuldldhuldldhuldldhul"

  68. "abbnxhssdalayabbnxhssda"

    Returns: "abbnxhssdalayabbnxhssdalayabbnxhssda"

  69. "upeup"

    Returns: "upeupeup"

  70. "uuljmmswndettpjxgsluul"

    Returns: "uuljmmswndettpjxgsluuljmmswndettpjxgsluul"

  71. "lcoivieml"

    Returns: "lcoiviemlcoivieml"

  72. "fffffffffff"

    Returns: "ffffffffffff"

  73. "ikwyqminqbfqsonustlfkhrbhmibjmikwyqminqbfqson"

    Returns: "ikwyqminqbfqsonustlfkhrbhmibjmikwyqminqbfqsonustlfkhrbhmibjmikwyqminqbfqson"

  74. "zyvrttonurwlmkarepqekxookzyvrtton"

    Returns: "zyvrttonurwlmkarepqekxookzyvrttonurwlmkarepqekxookzyvrtton"

  75. "cnycnycnycny"

    Returns: "cnycnycnycnycny"

  76. "kysitroqbuvxffirtkysitroqbuvxffirtkys"

    Returns: "kysitroqbuvxffirtkysitroqbuvxffirtkysitroqbuvxffirtkys"

  77. "chjeoychjeoychjeoychje"

    Returns: "chjeoychjeoychjeoychjeoychje"

  78. "prewafwuxon"

    Returns: "prewafwuxonprewafwuxon"

  79. "bmqtt"

    Returns: "bmqttbmqtt"

  80. "binrbnrmbinrbnrmbinrbnrmbin"

    Returns: "binrbnrmbinrbnrmbinrbnrmbinrbnrmbin"

  81. "mm"

    Returns: "mmm"

  82. "vwacggzaackjsamsxhggtjjenrnesntibiuv"

    Returns: "vwacggzaackjsamsxhggtjjenrnesntibiuvwacggzaackjsamsxhggtjjenrnesntibiuv"

  83. "ckjkslbsckjkslbsckjkslbsckjkslbsckjkslbsck"

    Returns: "ckjkslbsckjkslbsckjkslbsckjkslbsckjkslbsckjkslbsck"

  84. "aaaaaaaaaaaaaaaaaaaaa"

    Returns: "aaaaaaaaaaaaaaaaaaaaaa"

  85. "osklnhlwfogvmmeaksgyosklnhlwfo"

    Returns: "osklnhlwfogvmmeaksgyosklnhlwfogvmmeaksgyosklnhlwfo"

  86. "bjlfgcodtpgfb"

    Returns: "bjlfgcodtpgfbjlfgcodtpgfb"

  87. "rwpmyfipdzrvwroujrwpmyfipdzrvwroujr"

    Returns: "rwpmyfipdzrvwroujrwpmyfipdzrvwroujrwpmyfipdzrvwroujr"

  88. "hzufizqeurczoflytmmqonaihzufizqeurczoflytmmqo"

    Returns: "hzufizqeurczoflytmmqonaihzufizqeurczoflytmmqonaihzufizqeurczoflytmmqo"

  89. "snguycfpeovhzpmrpmokpowasnguycfpeovhzpmrpmokpow"

    Returns: "snguycfpeovhzpmrpmokpowasnguycfpeovhzpmrpmokpowasnguycfpeovhzpmrpmokpow"

  90. "zmcnzjuiosxwzfbpgdgfzmcnzjuiosxwzfbpgdgf"

    Returns: "zmcnzjuiosxwzfbpgdgfzmcnzjuiosxwzfbpgdgfzmcnzjuiosxwzfbpgdgf"

  91. "kcbltgbilevijawlkcb"

    Returns: "kcbltgbilevijawlkcbltgbilevijawlkcb"

  92. "htepauqhutdhvroxomkglxifpehtepa"

    Returns: "htepauqhutdhvroxomkglxifpehtepauqhutdhvroxomkglxifpehtepa"

  93. "pop"

    Returns: "popop"

  94. "lriiaodhtsnpgwwsnedmqdlskesgphyixry"

    Returns: "lriiaodhtsnpgwwsnedmqdlskesgphyixrylriiaodhtsnpgwwsnedmqdlskesgphyixry"

  95. "nott"

    Returns: "nottnott"

  96. "dzd"

    Returns: "dzdzd"

  97. "udfpzrqbsfdsvru"

    Returns: "udfpzrqbsfdsvrudfpzrqbsfdsvru"

  98. "dptomdptomdptomdptomdptomdp"

    Returns: "dptomdptomdptomdptomdptomdptomdp"

  99. "xpxzszbzpxp"

    Returns: "xpxzszbzpxpxzszbzpxp"

  100. "aaaaaaaa"

    Returns: "aaaaaaaaa"

  101. "wfdbwlajsqhincwfd"

    Returns: "wfdbwlajsqhincwfdbwlajsqhincwfd"

  102. "doflxkdoflxkdoflxkdoflxkdoflx"

    Returns: "doflxkdoflxkdoflxkdoflxkdoflxkdoflx"

  103. "tyzoeznjhnfcfiutsmitvzzwgngtogetyzoe"

    Returns: "tyzoeznjhnfcfiutsmitvzzwgngtogetyzoeznjhnfcfiutsmitvzzwgngtogetyzoe"

  104. "kkpgqukkpgqukkpgqukkpg"

    Returns: "kkpgqukkpgqukkpgqukkpgqukkpg"

  105. "ablwkipetxablwkipetxablwkipetxablwk"

    Returns: "ablwkipetxablwkipetxablwkipetxablwkipetxablwk"

  106. "jrskhqmfpsmjwrirssqjrskh"

    Returns: "jrskhqmfpsmjwrirssqjrskhqmfpsmjwrirssqjrskh"

  107. "asviryzxjrzfedjxasviryzxjrzfedjxasvi"

    Returns: "asviryzxjrzfedjxasviryzxjrzfedjxasviryzxjrzfedjxasvi"

  108. "a"

    Returns: "aa"

  109. "abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy"

    Returns: "abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy"

  110. "adfdgdssddssdsdff"

    Returns: "adfdgdssddssdsdffadfdgdssddssdsdff"

  111. "ababababababababa"

    Returns: "abababababababababa"

  112. "bb"

    Returns: "bbb"

  113. "usaushsueaohdueaohusaushuahusaush"

    Returns: "usaushsueaohdueaohusaushuahusaushsueaohdueaohusaushuahusaush"

  114. "abcdea"

    Returns: "abcdeabcdea"

  115. "abxab"

    Returns: "abxabxab"

  116. "xxxxax"

    Returns: "xxxxaxxxxax"

  117. "sabsa"

    Returns: "sabsabsa"

  118. "ababa"

    Returns: "abababa"

  119. "ababab"

    Returns: "abababab"

  120. "aaaaaab"

    Returns: "aaaaaabaaaaaab"

  121. "abaaba"

    Returns: "abaabaaba"

  122. "abcdeabcdabcde"

    Returns: "abcdeabcdabcdeabcdabcde"

  123. "abaa"

    Returns: "abaabaa"

  124. "xaxxaxx"

    Returns: "xaxxaxxaxx"

  125. "ba"

    Returns: "baba"

  126. "abac"

    Returns: "abacabac"

  127. "zaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: "zaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

  128. "abc"

    Returns: "abcabc"


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: