Statistics

Problem Statement for "CubeNets"

Problem Statement

In geometry a cube net is an arrangement of identical edge-joined squares in the plane which can be folded (along the edges) to become the faces of a cube.


In this problem you need to check if the given figure is a cube net. The given figure will be a union of six identical squares lying in the same plane and will be given to you as a String[] figure. Each element of figure will consist of '.' (dot) and '#' (sharp) characters only. A sharp represents one of the six squares, whereas a dot represents an empty space. Return "YES" if figure represents a cube net, or "NO" otherwise (all quotes for clarity).

Definition

Class:
CubeNets
Method:
isCubeNet
Parameters:
String[]
Returns:
String
Method signature:
String isCubeNet(String[] figure)
(be sure your method is public)

Constraints

  • figure will contain between 1 and 6 elements, inclusive.
  • Each element of figure will contain between 1 and 6 characters, inclusive.
  • Each element of figure will contain '.' (dot) and '#' (sharp) characters only.
  • All elements of figure will contain the same number of characters.
  • There will be exactly 6 '#' (sharp) characters among all the elements of figure.

Examples

  1. {"..#.", "####", "..#."}

    Returns: "YES"

    Here you can first fold across all the vertical edges to make the middle four squares become the down, right, up and left faces of the cube-to-be. One then finishes off the construction by folding across the remaining two edges to make the other two squares become the front and back faces of the cube.

  2. {"###", "###"}

    Returns: "NO"

    This is not a cube net.

  3. {"..#.", "####", ".#.."}

    Returns: "YES"

  4. {"##..", ".##.", "..##"}

    Returns: "YES"

  5. {"####", "...#", "...#"}

    Returns: "NO"

  6. {".#.","###",".#.",".#."}

    Returns: "YES"

  7. {"##.",".##",".#.",".#."}

    Returns: "YES"

  8. {".#.","##.",".##",".#."}

    Returns: "YES"

  9. {"##.",".#.",".#.",".##"}

    Returns: "YES"

  10. {"...#","####",".#.."}

    Returns: "YES"

  11. {".#..","####","...#"}

    Returns: "YES"

  12. {"##..",".###","..#."}

    Returns: "YES"

  13. {"##..",".###","...#"}

    Returns: "YES"

  14. {"..#.","###.","..##"}

    Returns: "YES"

  15. {"...#","####","...#"}

    Returns: "YES"

  16. {"....#",".####","....#"}

    Returns: "YES"

  17. {"....#.",".####.","....#."}

    Returns: "YES"

  18. {"......","....#.",".####.","....#."}

    Returns: "YES"

  19. {"#.....",".#....","..#...","...#..","....#.",".....#"}

    Returns: "NO"

  20. {"...#..","...##.","...##.","...#..","......","......"}

    Returns: "NO"

  21. {"...#..","...##.","......","...#..","...##.","......"}

    Returns: "NO"

  22. {"......","......","######","......","......","......"}

    Returns: "NO"

  23. {".....#",".....#","....##","....#.","....#.","......"}

    Returns: "YES"

  24. {"......",".#....","####..",".#....","......","......"}

    Returns: "YES"

  25. {"......","......","#####.","#.....","......","......"}

    Returns: "NO"

  26. {".##...","##....",".##...","......","......","......"}

    Returns: "NO"

  27. {"......","......","#####.",".#....","......","......"}

    Returns: "NO"

  28. {".#",".#","##","#.","#."}

    Returns: "YES"

  29. {".#",".#","##","#.",".#"}

    Returns: "NO"

  30. {".#","##",".#","#.","#."}

    Returns: "NO"

  31. {".#","##",".#",".#","#."}

    Returns: "NO"

  32. {"#","#","#","#","#","#"}

    Returns: "NO"

  33. {"######"}

    Returns: "NO"

  34. {"###..","..###"}

    Returns: "YES"

  35. {"..#.","####","#..."}

    Returns: "YES"

  36. { "..", "##", "#.", "##", "#." }

    Returns: "NO"

  37. { "....#.", "##.##.", ".#....", "......" }

    Returns: "NO"

  38. { ".#.", "...", "###", ".##" }

    Returns: "NO"

  39. { ".#", ".#", "#.", ".#", "##" }

    Returns: "NO"

  40. { "#..", ".##", "###" }

    Returns: "NO"

  41. { "##..", ".#..", "..#.", "#...", "..#." }

    Returns: "NO"

  42. { "....", "....", "#.#.", "##.#", "#..." }

    Returns: "NO"

  43. { "..##", "..##", "....", "...#", "...#" }

    Returns: "NO"

  44. { "#..#..", "##....", "..#.#.", "......" }

    Returns: "NO"

  45. { ".#.#.", "....#", ".....", "#....", ".#...", "....#" }

    Returns: "NO"

  46. { "###..", "..###" }

    Returns: "YES"

  47. { "..", ".#", ".#", "##", "#.", "#." }

    Returns: "YES"

  48. { "....", "..##", ".##.", "##..", "...." }

    Returns: "YES"

  49. { "......", "....#.", "....##", "...##.", "...#.." }

    Returns: "YES"

  50. { "......", "......", "......", "....#.", "..###.", ".##..." }

    Returns: "YES"

  51. { "..#..", ".####", "...#." }

    Returns: "YES"

  52. { "#.", "#.", "##", ".#", ".#", ".." }

    Returns: "YES"

  53. { "......", "..###.", "###..." }

    Returns: "YES"

  54. { "......", "......", "...#..", "####..", "#....." }

    Returns: "YES"

  55. { "...", ".#.", ".#.", "###", "..#" }

    Returns: "YES"

  56. { "....#.", "...###", "....##" }

    Returns: "NO"

  57. { "###..", "##...", "#....", "....." }

    Returns: "NO"

  58. { "##..", "####" }

    Returns: "NO"

  59. { "......", "###...", "###...", "......" }

    Returns: "NO"

  60. { ".##.", "###.", ".#..", "....", "...." }

    Returns: "NO"

  61. { "......", "..####", "...##." }

    Returns: "NO"

  62. { ".#...", ".###.", ".#...", ".#...", ".....", "....." }

    Returns: "NO"

  63. { "##....", "##....", "#.....", "#.....", "......" }

    Returns: "NO"

  64. { "######" }

    Returns: "NO"

  65. { "##", "##", "#.", "#.", ".." }

    Returns: "NO"

  66. { ".....", ".####", ".#..#" }

    Returns: "NO"

  67. { "..", "##", "#.", "##", "#.", ".." }

    Returns: "NO"

  68. { "##.", "#..", "##.", ".#." }

    Returns: "NO"

  69. { "####..", ".#.#.." }

    Returns: "NO"

  70. { "....", ".###", "##.#", "....", "....", "...." }

    Returns: "NO"

  71. {"####",".##."}

    Returns: "NO"

  72. {"##","#.","#.","#.","#."}

    Returns: "NO"

  73. {"#.","##","#.","#.","#."}

    Returns: "NO"

  74. {"#.","#.","##","#.","#."}

    Returns: "NO"

  75. {".#","##","#.","#.","#."}

    Returns: "NO"

  76. {"##","##","#.","#."}

    Returns: "NO"

  77. {"##","#.","##","#."}

    Returns: "NO"

  78. {"##","#.","#.","##"}

    Returns: "NO"

  79. {"###","#..","#..","#.."}

    Returns: "NO"

  80. {"#..","###","#..","#.."}

    Returns: "NO"

  81. {".#",".#","##","#.","#."}

    Returns: "YES"

  82. {".#","##","##","#."}

    Returns: "NO"

  83. {".#","##","#.","##"}

    Returns: "NO"

  84. {".##","##.","#..","#.."}

    Returns: "NO"

  85. {".#.","###","#..","#.."}

    Returns: "NO"

  86. {"##","##","##"}

    Returns: "NO"

  87. {"###","##.","#.."}

    Returns: "NO"

  88. {"##.","###","#.."}

    Returns: "NO"

  89. {"###","#..","##."}

    Returns: "NO"

  90. {"..#","###","#..","#.."}

    Returns: "NO"

  91. {".##",".#.","##.","#.."}

    Returns: "YES"

  92. {".#.",".##","##.","#.."}

    Returns: "YES"

  93. {".#.",".#.","###","#.."}

    Returns: "YES"

  94. {".##","##.","##."}

    Returns: "NO"

  95. {".#.","###","##."}

    Returns: "NO"

  96. {"..#",".##","##.","#.."}

    Returns: "YES"

  97. {".#.","###","#.#"}

    Returns: "NO"

  98. {".#..","####","#..."}

    Returns: "YES"

  99. {"###",".#.","##."}

    Returns: "NO"

  100. {".##",".#.",".#.","##."}

    Returns: "YES"

  101. {".#.",".##",".#.","##."}

    Returns: "YES"

  102. {".#.",".##","##.",".#."}

    Returns: "YES"

  103. {".#.",".#.","###",".#."}

    Returns: "YES"

  104. {"###",".#.",".#.",".#."}

    Returns: "YES"

  105. {"######"}

    Returns: "NO"

  106. {"####", "#.#." }

    Returns: "NO"

  107. {"###..", "..###" }

    Returns: "YES"

  108. {"###", "###" }

    Returns: "NO"

  109. {"......", "...#..", ".####.", "...#..", "......" }

    Returns: "YES"

  110. {"......", "..#...", "..#...", "..##..", "...#..", "...#.." }

    Returns: "YES"

  111. {"...#.", "####.", "...#." }

    Returns: "YES"

  112. {"######" }

    Returns: "NO"

  113. {"###", "...", "###" }

    Returns: "NO"

  114. {"...#..", "..###.", "...##.", "......" }

    Returns: "NO"

  115. {"......", ".###..", "...###", "......", "......" }

    Returns: "YES"

  116. {"##.", ".#.", ".##", "..#" }

    Returns: "YES"

  117. {"......", "..#...", "..#...", ".##...", ".#....", ".#...." }

    Returns: "YES"

  118. {".....#", ".....#", "....##", "....#.", "....#.", "......" }

    Returns: "YES"

  119. {"..###", "###.." }

    Returns: "YES"

  120. {"..#.", "###.", "..##" }

    Returns: "YES"

  121. {"..##", ".##.", "##.." }

    Returns: "YES"

  122. {"..##", "###.", "..#." }

    Returns: "YES"

  123. {"......", ".##...", "..###.", "...#..", "......" }

    Returns: "YES"

  124. {"##..", ".##.", "..##", "....", "...." }

    Returns: "YES"

  125. {"#...", "####", "...#" }

    Returns: "YES"

  126. {"#..", "##.", ".##", "..#" }

    Returns: "YES"

  127. {"###..", "..###", "....." }

    Returns: "YES"

  128. {".#...", "###..", "..##." }

    Returns: "YES"

  129. {"..#", ".##", ".#.", "##." }

    Returns: "YES"

  130. {"....#.", ".####.", "....#." }

    Returns: "YES"

  131. {"......", "......", "......", "...###", ".###..", "......" }

    Returns: "YES"

  132. {".#.", "###", ".#.", ".#." }

    Returns: "YES"

  133. {"......", "..###.", "...#..", "...#..", "...#..", "......" }

    Returns: "YES"

  134. {".#..", "###.", "..##" }

    Returns: "YES"

  135. {"###..", ".....", "..###" }

    Returns: "NO"

  136. {"#####.", "....#." }

    Returns: "NO"

  137. {"##..", ".###", ".#.." }

    Returns: "YES"

  138. {"......", "......", "..#...", "..#...", "..##..", ".##..." }

    Returns: "YES"

  139. {".#....", ".###..", "...##.", "......" }

    Returns: "YES"

  140. {"###", "..#", ".##" }

    Returns: "NO"

  141. {"......", "...#..", ".###..", "...##.", "......" }

    Returns: "YES"

  142. {"..#.", ".###", "##.." }

    Returns: "YES"

  143. {"#.####", "......", "#....." }

    Returns: "NO"

  144. {"###.", "..#.", "..##" }

    Returns: "NO"

  145. {"####", "#..#" }

    Returns: "NO"


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: