Statistics

Problem Statement for "SimplestCrossword"

Problem Statement

You are given two Strings: H and V. Build the simplest possible crossword that contains these two strings and nothing else. H must appear horizontally, V must appear vertically, and the two strings must overlap somewhere. The crossword must be rectangular and it must be as small as possible.

Return the crossword as a String[], using '.' for cells that do not contain a letter. If there are multiple valid solutions, you may return any one of them. If there is no valid solution, return an empty String[] instead.

Definition

Class:
SimplestCrossword
Method:
construct
Parameters:
String, String
Returns:
String[]
Method signature:
String[] construct(String H, String V)
(be sure your method is public)

Constraints

  • H will contain between 2 and 10 characters, inclusive.
  • V will contain between 2 and 10 characters, inclusive.
  • Each character in H and V will be an uppercase English letter ('A'-'Z').

Examples

  1. "TOP"

    "CODER"

    Returns: {".C.", "TOP", ".D.", ".E.", ".R." }

    This is what the return value looks like when formatted into a rectangle: {".C.", "TOP", ".D.", ".E.", ".R." } This return value describes the following crossword: .C. TOP .D. .E. .R. In this particular test case, this is the only valid solution.

  2. "CODER"

    "TOP"

    Returns: {".T...", "CODER", ".P..." }

    Here we swapped the two words, so now CODER should go horizontally. The returned crossword looks as follows: .T... CODER .P...

  3. "AAAAA"

    "AAAAAA"

    Returns: {"...A.", "...A.", "...A.", "AAAAA", "...A.", "...A." }

    Returned crossword: ...A. ...A. ...A. AAAAA ...A. ...A. In this case there are 29 other valid crosswords, and each of those would be accepted as well.

  4. "CAT"

    "DOG"

    Returns: { }

    We cannot make these two words overlap.

  5. "FZUHE"

    "DYVBX"

    Returns: { }

  6. "IVNYPWE"

    "JUFCA"

    Returns: { }

  7. "OYCMBZFK"

    "GWESAVQUI"

    Returns: { }

  8. "KB"

    "LDMQW"

    Returns: { }

  9. "CK"

    "HXOAQT"

    Returns: { }

  10. "MUZYKHLJDS"

    "XIRNTC"

    Returns: { }

  11. "DU"

    "JQNMOZVF"

    Returns: { }

  12. "GY"

    "OUMIFE"

    Returns: { }

  13. "IOAFHWUE"

    "TBNVKXG"

    Returns: { }

  14. "CPXQDYWAF"

    "VOEKNHRJGT"

    Returns: { }

  15. "BHSZRQLA"

    "SE"

    Returns: {"BHSZRQLA", "..E....." }

  16. "WQXDKYSR"

    "UZQGIVLE"

    Returns: {".U......", ".Z......", "WQXDKYSR", ".G......", ".I......", ".V......", ".L......", ".E......" }

  17. "XERZAWI"

    "ZH"

    Returns: {"XERZAWI", "...H..." }

  18. "SFM"

    "PSKOANV"

    Returns: {"P..", "SFM", "K..", "O..", "A..", "N..", "V.." }

  19. "KBINA"

    "OLYUMBRGJP"

    Returns: {".O...", ".L...", ".Y...", ".U...", ".M...", "KBINA", ".R...", ".G...", ".J...", ".P..." }

  20. "TEF"

    "JEI"

    Returns: {".J.", "TEF", ".I." }

  21. "EMLCGY"

    "YW"

    Returns: {"EMLCGY", ".....W" }

  22. "NAHFSZDPW"

    "QKJST"

    Returns: {"....Q....", "....K....", "....J....", "NAHFSZDPW", "....T...." }

  23. "JF"

    "YJD"

    Returns: {"Y.", "JF", "D." }

  24. "VW"

    "CJHQUEVXAF"

    Returns: {"C.", "J.", "H.", "Q.", "U.", "E.", "VW", "X.", "A.", "F." }

  25. "XTSKPHD"

    "VHN"

    Returns: {".....V.", "XTSKPHD", ".....N." }

  26. "QOR"

    "RD"

    Returns: {"QOR", "..D" }

  27. "FRTMNKBOW"

    "VPYHLINJU"

    Returns: {"....V....", "....P....", "....Y....", "....H....", "....L....", "....I....", "FRTMNKBOW", "....J....", "....U...." }

  28. "JS"

    "CZWDBSV"

    Returns: {".C", ".Z", ".W", ".D", ".B", "JS", ".V" }

  29. "WQJU"

    "HJMODYGTRX"

    Returns: {"..H.", "WQJU", "..M.", "..O.", "..D.", "..Y.", "..G.", "..T.", "..R.", "..X." }

  30. "ILBMON"

    "UDL"

    Returns: {".U....", ".D....", "ILBMON" }

  31. "OJPACY"

    "HPERZKFWB"

    Returns: {"..H...", "OJPACY", "..E...", "..R...", "..Z...", "..K...", "..F...", "..W...", "..B..." }

  32. "CRZQAX"

    "LQOHN"

    Returns: {"...L..", "CRZQAX", "...O..", "...H..", "...N.." }

  33. "YPKSE"

    "AK"

    Returns: {"..A..", "YPKSE" }

  34. "LKNR"

    "KTJGF"

    Returns: {"LKNR", ".T..", ".J..", ".G..", ".F.." }

  35. "PBOEDS"

    "ZHS"

    Returns: {".....Z", ".....H", "PBOEDS" }

  36. "ZA"

    "YROBAT"

    Returns: {".Y", ".R", ".O", ".B", "ZA", ".T" }

  37. "FRPZ"

    "LXRT"

    Returns: {".L..", ".X..", "FRPZ", ".T.." }

  38. "WLNJHXC"

    "UCA"

    Returns: {"......U", "WLNJHXC", "......A" }

  39. "VPH"

    "GWTAVR"

    Returns: {"G..", "W..", "T..", "A..", "VPH", "R.." }

  40. "FXOAQCB"

    "GNDUA"

    Returns: {"...G...", "...N...", "...D...", "...U...", "FXOAQCB" }

  41. "SXPWDLURN"

    "OHQADE"

    Returns: {"....O....", "....H....", "....Q....", "....A....", "SXPWDLURN", "....E...." }

  42. "DUHWPSF"

    "RZLDIKO"

    Returns: {"R......", "Z......", "L......", "DUHWPSF", "I......", "K......", "O......" }

  43. "PUFXWOMQB"

    "LDYSWG"

    Returns: {"....L....", "....D....", "....Y....", "....S....", "PUFXWOMQB", "....G...." }

  44. "KWVSYU"

    "XCOWTN"

    Returns: {".X....", ".C....", ".O....", "KWVSYU", ".T....", ".N...." }

  45. "GRTAWZMX"

    "NRL"

    Returns: {".N......", "GRTAWZMX", ".L......" }

  46. "NVOUQ"

    "CU"

    Returns: {"...C.", "NVOUQ" }

  47. "VJ"

    "OSFVU"

    Returns: {"O.", "S.", "F.", "VJ", "U." }

  48. "DHGXZQ"

    "UTGY"

    Returns: {"..U...", "..T...", "DHGXZQ", "..Y..." }

  49. "NTAUKFJQI"

    "PKOGCWXBLV"

    Returns: {"....P....", "NTAUKFJQI", "....O....", "....G....", "....C....", "....W....", "....X....", "....B....", "....L....", "....V...." }

  50. "EGZHBJS"

    "BW"

    Returns: {"EGZHBJS", "....W.." }

  51. "EMFV"

    "AIODJV"

    Returns: {"...A", "...I", "...O", "...D", "...J", "EMFV" }

  52. "IWYUTEGOK"

    "HDZLJW"

    Returns: {".H.......", ".D.......", ".Z.......", ".L.......", ".J.......", "IWYUTEGOK" }

  53. "NWJK"

    "BUMGK"

    Returns: {"...B", "...U", "...M", "...G", "NWJK" }

  54. "QWANZCVK"

    "FOCSMILE"

    Returns: {".....F..", ".....O..", "QWANZCVK", ".....S..", ".....M..", ".....I..", ".....L..", ".....E.." }

  55. "ZJJH"

    "IJIL"

    Returns: {".I..", "ZJJH", ".I..", ".L.." }

  56. "FBFBTFTTTF"

    "BFTB"

    Returns: {"FBFBTFTTTF", ".F........", ".T........", ".B........" }

  57. "XXXXXXX"

    "XX"

    Returns: {"XXXXXXX", "X......" }

  58. "ZGGGGGZZZ"

    "GGGZGGZZ"

    Returns: {"ZGGGGGZZZ", ".G.......", ".G.......", ".Z.......", ".G.......", ".G.......", ".Z.......", ".Z......." }

  59. "BRBYYRV"

    "JJJYRYY"

    Returns: {"...J...", "...J...", "...J...", "BRBYYRV", "...R...", "...Y...", "...Y..." }

  60. "HTFFSTHFT"

    "HST"

    Returns: {"HTFFSTHFT", "S........", "T........" }

  61. "YE"

    "UU"

    Returns: { }

  62. "DZDUDTLZB"

    "STBUM"

    Returns: {".....S...", "DZDUDTLZB", ".....B...", ".....U...", ".....M..." }

  63. "ESENQ"

    "QENSS"

    Returns: {"ESENQ", "....E", "....N", "....S", "....S" }

  64. "EDHMD"

    "RVMMV"

    Returns: {"...R.", "...V.", "EDHMD", "...M.", "...V." }

  65. "FFFFFDFDDF"

    "FDFFFFDFFF"

    Returns: {"FFFFFDFDDF", "D.........", "F.........", "F.........", "F.........", "F.........", "D.........", "F.........", "F.........", "F........." }

  66. "LCJJSCS"

    "LJCKCLKL"

    Returns: {"LCJJSCS", "J......", "C......", "K......", "C......", "L......", "K......", "L......" }

  67. "AMAHHHJHJA"

    "JH"

    Returns: {"AMAHHHJHJA", "......H..." }

  68. "LEUNUEVHUU"

    "UV"

    Returns: {"LEUNUEVHUU", "..V......." }

  69. "YFZVZ"

    "FZXXXX"

    Returns: {"YFZVZ", ".Z...", ".X...", ".X...", ".X...", ".X..." }

  70. "HHHHH"

    "HHH"

    Returns: {"HHHHH", "H....", "H...." }

  71. "OALALGWOO"

    "AGWL"

    Returns: {"OALALGWOO", ".G.......", ".W.......", ".L......." }

  72. "HA"

    "AXKL"

    Returns: {"HA", ".X", ".K", ".L" }

  73. "FFHHHHHCKD"

    "DDCFHHKFF"

    Returns: {"FFHHHHHCKD", ".........D", ".........C", ".........F", ".........H", ".........H", ".........K", ".........F", ".........F" }

  74. "YHWNRY"

    "RIUIHYIY"

    Returns: {"YHWNRY", "....I.", "....U.", "....I.", "....H.", "....Y.", "....I.", "....Y." }

  75. "DKDZ"

    "KDFKXN"

    Returns: {"DKDZ", ".D..", ".F..", ".K..", ".X..", ".N.." }

  76. "OGGGOZQQ"

    "ZOZOZG"

    Returns: {"OGGGOZQQ", ".....O..", ".....Z..", ".....O..", ".....Z..", ".....G.." }

  77. "PCLCJJ"

    "HPQHSQP"

    Returns: {"H.....", "PCLCJJ", "Q.....", "H.....", "S.....", "Q.....", "P....." }

  78. "CMCCFOU"

    "URMUF"

    Returns: {"CMCCFOU", "......R", "......M", "......U", "......F" }

  79. "VEUBTUBBBE"

    "TV"

    Returns: {"VEUBTUBBBE", "....V....." }

  80. "OAANRRASNR"

    "TYSARSSS"

    Returns: {".......T..", ".......Y..", "OAANRRASNR", ".......A..", ".......R..", ".......S..", ".......S..", ".......S.." }

  81. "FTPFPCQT"

    "TPFTLLPTL"

    Returns: {"FTPFPCQT", ".P......", ".F......", ".T......", ".L......", ".L......", ".P......", ".T......", ".L......" }

  82. "JXIJJCZXX"

    "JXM"

    Returns: {"JXIJJCZXX", "X........", "M........" }

  83. "DVRDG"

    "PPG"

    Returns: {"....P", "....P", "DVRDG" }

  84. "JJRRHXGR"

    "GIJGIFGF"

    Returns: {"JJRRHXGR", "......I.", "......J.", "......G.", "......I.", "......F.", "......G.", "......F." }

  85. "AJEEIS"

    "ESEIAEDJIQ"

    Returns: {"AJEEIS", "..S...", "..E...", "..I...", "..A...", "..E...", "..D...", "..J...", "..I...", "..Q..." }

  86. "CHICCCHC"

    "ICIHCIC"

    Returns: {"CHICCCHC", "..C.....", "..I.....", "..H.....", "..C.....", "..I.....", "..C....." }

  87. "TVB"

    "OKO"

    Returns: { }

  88. "QXJWQYQ"

    "XQJYXXXY"

    Returns: {"QXJWQYQ", ".Q.....", ".J.....", ".Y.....", ".X.....", ".X.....", ".X.....", ".Y....." }

  89. "YYBMT"

    "YYMBPBBYBM"

    Returns: {"YYBMT", "Y....", "M....", "B....", "P....", "B....", "B....", "Y....", "B....", "M...." }

  90. "JPPATQTPT"

    "TUAQMAA"

    Returns: {"JPPATQTPT", "....U....", "....A....", "....Q....", "....M....", "....A....", "....A...." }

  91. "DDDDDDDDDD"

    "DDDDDD"

    Returns: {"DDDDDDDDDD", "D.........", "D.........", "D.........", "D.........", "D........." }

  92. "IFF"

    "KZNNINKNNK"

    Returns: {"K..", "Z..", "N..", "N..", "IFF", "N..", "K..", "N..", "N..", "K.." }

  93. "CCCCCCCCCC"

    "CCCCCCCCCC"

    Returns: {"CCCCCCCCCC", "C.........", "C.........", "C.........", "C.........", "C.........", "C.........", "C.........", "C.........", "C........." }

  94. "GG"

    "GGGGGGG"

    Returns: {"GG", "G.", "G.", "G.", "G.", "G.", "G." }

  95. "ABC"

    "DA"

    Returns: {"D..", "ABC" }

  96. "HORNU"

    "FU"

    Returns: {"....F", "HORNU" }


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: