Statistics

Problem Statement for "ColorfulGarden"

Problem Statement

We have a garden that contains some flowers. The flowers are arranged into a rectangle with 2 rows and n columns. You are given a String[] garden that describes our garden. The String[] garden has two elements, each with n characters. Each character in garden represents one flower. Different characters in garden represent different colors.


Two flowers are considered adjacent if they are in the same column, or if they are next to each other in the same row. Your goal is to produce a garden in which no pair of adjacent flowers shares the same color. You may rearrange the flowers in your garden arbitrarily (without changing its shape). More precisely, you may swap any two flowers in your garden, and you may do so arbitrarily many times.


If the goal can be reached, return a String[] that will encode the resulting garden in the same format as was used for garden. If there are multiple solutions, you may return any of them. If there is no solution, return an empty String[].

Definition

Class:
ColorfulGarden
Method:
rearrange
Parameters:
String[]
Returns:
String[]
Method signature:
String[] rearrange(String[] garden)
(be sure your method is public)

Constraints

  • garden will contain exactly 2 elements, inclusive.
  • Each element in garden will contain between 1 and 50 characters, inclusive.
  • Each element in garden will contain the same number of characters.
  • Each character in garden will be a lowercase letter ('a'-'z').

Examples

  1. {"aa", "bb"}

    Returns: {"ba", "ab" }

    Swapping garden[0][1] and garden[1][1] produces a valid garden.

  2. {"xxxx", "xxxx"}

    Returns: { }

    No matter what we do, we will end up with the same result, and that is not a valid solution.

  3. {"abcd", "abcd"}

    Returns: {"abcd", "dcba" }

  4. {"abcdefghijklm", "nopqrstuvwxyz"}

    Returns: {"abcdefghijklm", "nopqrstuvwxyz" }

  5. {"aaa", "aab"}

    Returns: { }

  6. {"acaacaabaaaaaaacbbcbabacabbabbcaabbbbcabbbcacacbca","bbabbaaabbcccbbbccabbbbaaabaaccacbbabbcbcbcccaabbb"}

    Returns: {"babababababababababababababcbcbcbcbcbcbcacacacacac", "abababababababababababababcbcbcbcbcbcbcbcacacacaca" }

  7. {"cbabaaaaaaaaaaccabbcaacaaacacaaaacaabccaacacaabca","acbbccaccbbbbbbbbaabcabbcbcabaaacccbaacbcbacbbbbc"}

    Returns: {"acacacacacacacacacacabababababababababababcbcbcbc", "cacacacacacacacacacacabababababababababababcbcbcb" }

  8. {"baaaaaaaccbaaacaaccaacaabaacbcabacbcaabaaacaacaacb","abccabbbcaaacacaaacabbbbcbbcacaccbaacabacaabccbbcb"}

    Returns: {"acacacacacacacacacacacacacabababababababababababcb", "cacacacacacacacacacacacacabababababababababababcbc" }

  9. {"acbaacaacaccababcaacbbbbabaaacaaaaaabbaaabaaacbbaa","cacbbacabacccccaccbbacbbacabbccbccbaaabaacbcccaaab"}

    Returns: {"acacacacacacacacacacacabababababababababababcbcbcb", "cacacacacacacacacacacacabababababababababababcbcbc" }

  10. {"aabbaacaaabaaacaccaaaaacaabaababaaaaacaabcacaccaaa","cababacccbabbcacaacbcacccabbcbcabccbccccaaccbabcba"}

    Returns: {"acacacacacacacacacacacacacacababababababababababcb", "cacacacacacacacacacacacacacacabababababababababcbc" }

  11. {"abaacccaacacabcaaccbbbaaaababcabaccaabcaaabbacbba","acaaaabbabaacabcaababaacbabbccbbabbcabbbccaabccaa"}

    Returns: {"ababababababababababababacacacacacacacacacacbcbcb", "bababababababababababababacacacacacacacacacacbcbc" }

  12. {"bbaccaabaaabbbacbcaabbabaccaaaabcacaabcacacaaabaa","acbbcacacbababcbaaababbbbcbabccbcbbcbbacaacccacbb"}

    Returns: {"abababababababababababacacacacacacacacacbcbcbcbcb", "babababababababababababacacacacacacacacbcbcbcbcbc" }

  13. {"aaabbbccabbbaabaaccccbcbbbcaacbcabacccacaabbcbabaa","baacccacacbacacbbabbcccccbaaacbacacbbcabcbcccccaab"}

    Returns: {"cacacacacacacacacacacbcbcbcbcbcbcbcbcbabababababab", "acacacacacacacacacacbcbcbcbcbcbcbcbcbababababababa" }

  14. {"cbaaaabbaabcbaacbbbbcbaacaabababaaababcaaaaccaacc","cccccbabcbbbbbababcaabcababaabbbacbaabbbcaaabcaac"}

    Returns: {"abababababababababababababacacacacacacacacbcbcbcb", "babababababababababababababacacacacacacacbcbcbcbc" }

  15. {"acbaacbcaaaaaaabbcaababcaaaabaaaaabbcaaaacbbaccaa","bccccccbbaaaaacbbabbacbcbccbbccabbaaacbccaccbbccb"}

    Returns: {"acacacacacacacacacacabababababababababababcbcbcbc", "cacacacacacacacacacacababababababababababcbcbcbcb" }

  16. {"abaacaaaaabbaaabaaabaabbaacaaabcccaabbbccaabcaacbc","aaacccabbbacaaabbaabaabccaabaababcccbaaccaaabbcbab"}

    Returns: {"ababababababababababababababacacacacacacacacacacac", "babababababababababababababacacacacacacacacacacaca" }

  17. {"abcbabaaacaccbacbccaabcaaccabaabbaaaaababcaaaabca","acccaaabacbaacaaacbabaccaaaabbbaaaaccacabcbccbbbc"}

    Returns: {"acacacacacacacacacacacacababababababababababababc", "cacacacacacacacacacacacacabababababababababababcb" }

  18. {"bbcabaaaccacacbcaabbbaababaaababaaabaaaaccacbcbbbb","bcacbcaaabaacccbcbcacaaacabaabbcacbbaacccacaaaabab"}

    Returns: {"ababababababababababababacacacacacacacacacacacbcbc", "babababababababababababacacacacacacacacacacacbcbcb" }

  19. {"acaaacbbacaacaacbababbbcbabbacabaaabcccaacaaaaaca","cbcaabcabaccbcccaaaacababcaabbacaaaacacaacbaaccac"}

    Returns: {"acacacacacacacacacacacacacacababababababababababc", "cacacacacacacacacacacacacacababababababababababab" }

  20. {"abaabbaacbbcbaaacbaacccbcaababaacbabbcacbaaacbbcb","caaacaacabbaaabaaacccabbaababaabaccacccacababcaac"}

    Returns: {"abababababababababababacacacacacacacacacacacacbcb", "babababababababababababacacacacacacacacacacacbcbc" }

  21. {"aacabbacaccaccbacccbcbbaaacccabbccbaabcbaababaaaa","bcbaaacaaaaaacaaaacaabcabaaaaacabcaaaabccccababbc"}

    Returns: {"acacacacacacacacacacacacacabababababababababababc", "cacacacacacacacacacacacacacababababababababababab" }

  22. {"abbbccccabaaccaccabaacaabacaaaaaaaccabbacccabaaab","cabccacbacaccaacacabaabbaaaaaaaaacabcaaaacbaaabaa"}

    Returns: { }

  23. {"bccbcccbcaaaccacbaaacacacccbbaccbacccacaabaaabcca","baabcaccaacaacabaacaacaaaabbacabcacbcaaabaacbcaba"}

    Returns: {"acacacacacacacacacacacacacacacabababababababcbcbc", "cacacacacacacacacacacacacacacababababababababcbcb" }

  24. {"caabacacaabbaaccbaaaabacaaaacbbcacaaaacbacabaaaaa","ccccbccccbaccabaacaaaaacbcbccbabcabaacabacccbabaa"}

    Returns: {"acacacacacacacacacacacacacacababababababababababc", "cacacacacacacacacacacacacacacabababababababababcb" }

  25. {"bacaaababbbaaacababaaacaaaaaaaaacaabbababbacacabab","cabccbacacacaabbcbbbbaabaacbcaaabaccaacbbcaacccaaa"}

    Returns: { }

  26. {"aaacababbbaaaacbbcabbbbbcacacbbbbcabcacbaabcaacbbb","babcbaacbbcabbaababcacababbbcabcbcbbabaacbaaabbaab"}

    Returns: {"babababababababababababababababcbcbcbcbcbcbcacacac", "abababababababababababababababcbcbcbcbcbcbcacacaca" }

  27. {"bcccaaaaabcaaabbbbbccaababaabbbbaabacbbabbcbaaaba","abaabaaababaaaabcbaacbaaabbbabbabbaacaaacaaaaaccc"}

    Returns: {"abababababababababababababababababacacacacacacaca", "bababababababababababababababababacacacacacacacac" }

  28. {"bbbbabaccababaabbbbbaabbcbbbbbcbacaacaaabaaccaabb","ababccbbbcbaacababbbababaabaabbbcbabcabbbbbaaacbc"}

    Returns: {"bababababababababababababababababcbcbcbcbcbcbcbca", "abababababababababababababababababcbcbcbcbcbcbcac" }

  29. {"bbbbbbabaaccbbabbbaabacabbbcbabbcabbabbbaacaaabaaa","acbbcababaacbcabcaacaccbbbbabaabaaababbbbbcaacabca"}

    Returns: {"bababababababababababababababababcbcbcbcbcbcacacac", "abababababababababababababababababcbcbcbcbcbcacaca" }

  30. {"bccbabcbbbabaababbbabbbbabababcbcbaabbaababcbcbabc","abbabaaabbbbaabcacbbabbabbaacbcbabbacabbbbbbaacabb"}

    Returns: { }

  31. {"abbaaacabbccabaaabaaabaabaacbbbbbabbbacaaaabbaacaa","acababaababbaaaababbabbaaaaabacbacbabbabcaabbabcca"}

    Returns: { }

  32. {"babbabbcbbbbaccbaabaaaaaaababcabbaaaaababcbbbaaaab","caabaacaaaabcabaaabbacaaaccacabcbbaabbccbabbbbcbab"}

    Returns: {"abababababababababababababababababacacacacacacbcbc", "bababababababababababababababababacacacacacacacbcb" }

  33. {"bcabbbbbbabaabcaacabbbbbbacabbcabbabbbabbabaacaba","baaacbaaabaacabaabbcacabbbaaaabababcbaaabbbaaabba"}

    Returns: {"babababababababababababababababababababcbcbcacaca", "abababababababababababababababababababcbcbcbcacac" }

  34. {"abbabaabbbacbbcbabacbbaabaabbaabbcacabacbabaabaaba","aabbaabbaabbbcbaaabbbbcababacbaaaacbbabcabacabbbca"}

    Returns: {"bababababababababababababababababababcbcbcbcacacac", "abababababababababababababababababababcbcbcbcacaca" }

  35. {"cbbbcbcaaaabcbabbbabaaaabaacccacabcbaabaabbacaaab","aaaababcbaaacabaaaacbacbccacbcbbbcbcacbaacaabaaaa"}

    Returns: {"abababababababababababababacacacacacacacacacacbcb", "babababababababababababababacacacacacacacacacacbc" }

  36. {"baabbaabbbaa","aaaaabaabacc"}

    Returns: { }

  37. {"abaaaaaaabaca","bbbaacaaacaac"}

    Returns: { }

  38. {"bbcabacaaaaaabbcccaaaaababbaabaacccaaabb","bababacbbabbabbccccbcaacbcbcaaaabacbabbb"}

    Returns: {"abababababababababababacacacacacacbcbcbc", "bababababababababababacacacacacacacbcbcb" }

  39. {"baabcacbbcaaacbbaba","bbbabbaabaabbbacbac"}

    Returns: {"bababababababcbcbca", "abababababababcbcac" }

  40. {"abbac","bbbcb"}

    Returns: { }

  41. {"abcababbbbabbacabbcabbb","cbacbababbabacaabaaaabc"}

    Returns: {"bababababababababcbcbca", "ababababababababcbcbcac" }

  42. {"abacbbabaacb","bbbaaaaabbcb"}

    Returns: {"bababababcbc", "abababababca" }

  43. {"cbaaabacabbbaabbbbabbacbbbabbaabbbacbbcaabc","baaaacbaaacaabbabbbbbbcaacacbbaaacbcaaabaaa"}

    Returns: {"abababababababababababababababacacacacbcbcb", "bababababababababababababababacacacacbcbcbc" }

  44. {"cbbbbcababbcaaabbb","aaaabbabaaabaaabbb"}

    Returns: {"babababababababcbc", "ababababababababca" }

  45. {"cbaabcaabbbbcbbacbbcabcbcab","baaaabaacaaaacbaabaabbaaabb"}

    Returns: {"abababababababababacacacbcb", "bababababababababacacacacbc" }

  46. {"a","d"}

    Returns: {"d", "a" }

  47. {"abaa","bdbc"}

    Returns: {"babc", "abda" }

  48. {"bbbaaaba","dcbbcccb"}

    Returns: {"bcbababd", "cbcbabac" }

  49. {"abaabababaaeaeaaababeababbbbbbabbaabaaba","bbbdccbccccbbbccbccccbbcdbbbbbccccccbcbb"}

    Returns: {"bcbcbcbcbcbcbcbababababababababababececd", "cbcbcbcbcbcbcbcbabababababababababacecdc" }

  50. {"abeebebaeabababbaebabe","bbbdcdcbbbcbcbcdbbbbdc"}

    Returns: {"babababebebebcbcbcbdbd", "abababebebebcbcbcbdbda" }

  51. {"aeaabbaaaaabbabbaabaaaaeaabaabeaaaaabbb","ccbbcbcddccccbbbbcdccdbcdbccbdccbbdbccc"}

    Returns: {"babababababcbcbcbcbcbcbcbcacadadadadaea", "abababababcbcbcbcbcbcbcbcacacadadadaeae" }

  52. {"aabaaeabbaabababebaebbeaebeaabbbabbbeebabb","cbcbdbbcbcccbbcddcdbbbbddccbcbccccbbbbcbcc"}

    Returns: {"bcbcbcbcbcbcbababababababababebebebebdcdcd", "cbcbcbcbcbcbcbabababababababebebebebdcdcdc" }

  53. {"bebebeaabeaaebaabbaaebbebaababbbaeeae","bdcbbdcdcdbbbddcccccccccbcccccdccbcbd"}

    Returns: {"bcbcbcbababababababebebecececdcdcdcdc", "cbcbcbabababababababebececececdcdcdcd" }

  54. {"abbbaaabbabbbabeaaaaaabeabaababab","dccbdcbdbcbbccbcbdcbccdbdccbcbcbd"}

    Returns: {"babababababcbcbcbcbcbcbcbdadadaea", "abababababcbcbcbcbcbcbcbdbdadadae" }

  55. {"aeaabbeaaaaaaabababbaa","dbdcbbbddccdcdbbbdcdcc"}

    Returns: {"ababadadadadacbcbcbcbe", "bababadadadadacbcbcbeb" }

  56. {"jcbvycprznldcjtkgufzfbkhuujflvwq","pfxbmwphswbhjkrimszwrhdaboyzepwz"}

    Returns: {"zuzrzkwkwcbybvbspmpljdjxhqhnfgfa", "uzrzrwkwcwcbybvpspmjljdhthofifeu" }

  57. {"kiolevml","irrrvovj"}

    Returns: {"vlvirkoe", "lvirmrjo" }

  58. {"vfnowuoefxzcoofzfuwtva","uemhavrdnybalvxzeogkzf"}

    Returns: {"oeoaoxfwfnzyzrvlvhudub", "eoaoafxfwfnztzmvkvguce" }

  59. {"vfsjutsxvknegbkrtealgogjyfimdhbbubjbtmr","fpfezbmuncvqvdxapbhxhbvscnmspbjndwfjows"}

    Returns: {"bububtbpbpvhvgsgsesdjdjwfrfofkncnamymlx", "xbubtbtbpvhvhvgsesejdjwjrfofkncnamzmqxi" }

  60. {"vzmqawdteztbasskamqvzspoiitikwsuohmprm","zgbiuqwpicpysgoqzfzrcjqwitztbsccrdyqqr"}

    Returns: {"zpzpzmzmqcqcqososbsaiaiyivtutktgwdwhre", "rzpzpzmqmqcqcqosbsbsaiyiviutktgwdwjrfr" }

  61. {"eccbohzyltvcoiwvqjrefsyaovcuzrvmbbasglm","mwqbaotcfemgphwquizblawuiswenhbxhugypxd"}

    Returns: {"bababzwzwywscscqvlvluiugogoxmtmrhphfeje", "ebababzwywycscqcqvlviuiugoxotmrmphfhned" }

  62. {"ayiebwobyurvgjebtixkcqhjiwsonwl","iciievnnawyqakcdqiomvjucybpupib"}

    Returns: {"iqioioinbjbjbeyayawpwkctcrvlugu", "qiqioininbjbeyeyawpwkcxcsvmvhud" }

  63. {"lvmbwtgk","qlegbugn"}

    Returns: {"gugqlmbe", "vgtlnbkw" }

  64. {"lufhoerpzdyoupepdyfmpfxu","yarfiwfccrqiwdzxeeleyaha"}

    Returns: {"fdfafaezexywyoplpiuhucrm", "dfdfaezexewyoylpiphucrqr" }

  65. {"mukffgeow","ugnuftcaf"}

    Returns: {"ftfnukucg", "wfofmuega" }

  66. {"aaabb","bbbcc"}

    Returns: {"babcb", "ababc" }

  67. {"aaasdasdasdsafsdfsadasabaaasdasdasdsafsdfsadasab", "aaasdasdasdsafsdfsadasabaaasdasdasdsafsdfsadasab" }

    Returns: {"asasasasasasasasadadadadadadadadadadsfsfsfsfsbsb", "sasasasasasasasadadadadadadadadadadafsfsfsfsbsbs" }

  68. {"ab", "bc" }

    Returns: {"ba", "cb" }

  69. {"aab", "bbc" }

    Returns: {"bab", "abc" }

  70. {"ab", "cb" }

    Returns: {"ba", "cb" }

  71. {"aaaac", "bbbbc" }

    Returns: {"babca", "ababc" }

  72. {"abb", "bbc" }

    Returns: { }

  73. {"aa", "bb" }

    Returns: {"ba", "ab" }

  74. {"accc", "bbbb" }

    Returns: {"bcba", "cbcb" }

  75. {"acc", "bbb" }

    Returns: {"bcb", "cba" }

  76. {"abb", "bcc" }

    Returns: {"bcb", "cba" }

  77. {"ls", "sw" }

    Returns: {"sl", "ws" }

  78. {"abbb", "bccc" }

    Returns: {"bcba", "cbcb" }

  79. {"aba", "bab" }

    Returns: {"bab", "aba" }

  80. {"bbb", "acc" }

    Returns: {"bcb", "cba" }

  81. {"abcc", "abcc" }

    Returns: {"cbca", "bcac" }

  82. {"ab", "cc" }

    Returns: {"ca", "bc" }

  83. {"aaa", "ccc" }

    Returns: {"cac", "aca" }

  84. {"ecacabacaabcddeecba", "cceaceddaccdbcbaaea" }

    Returns: {"cacecececdcdadababa", "acacecececdadababab" }

  85. {"aabb", "bbcc" }

    Returns: {"bcba", "cbab" }

  86. {"addb", "bcbb" }

    Returns: {"bdba", "dbcb" }

  87. {"aaaaaccccc", "bbbbbbbbbb" }

    Returns: {"bcbcbababa", "cbcbcbabab" }

  88. {"abb", "bcd" }

    Returns: {"bcb", "dba" }

  89. {"aab", "bcc" }

    Returns: {"cab", "bca" }

  90. {"dde", "eaa" }

    Returns: {"ead", "dea" }

  91. {"aaab", "bbcc" }

    Returns: {"babc", "abca" }

  92. {"aaab", "bbbc" }

    Returns: {"babc", "abab" }

  93. {"abcdef", "gggggg" }

    Returns: {"gegcga", "fgdgbg" }

  94. {"abbbb", "bcccc" }

    Returns: {"bcbcb", "cbcba" }

  95. {"aaa", "bbb" }

    Returns: {"bab", "aba" }

  96. {"ac", "bb" }

    Returns: {"ba", "cb" }

  97. {"xxxx", "xxxx" }

    Returns: { }

  98. {"abc", "abc" }

    Returns: {"cab", "bca" }

  99. {"accd", "cbdc" }

    Returns: {"cdca", "dcbc" }

  100. {"aabb", "cccc" }

    Returns: {"cbca", "bcac" }

  101. {"abb", "bac" }

    Returns: {"bab", "abc" }

  102. {"aaaaa", "bbbcc" }

    Returns: {"abaca", "babac" }

  103. {"aaaaabb", "bbbcccc" }

    Returns: {"babcbca", "ababcac" }

  104. {"babbcbcaab", "cbcbcabbba" }

    Returns: {"bcbcbababa", "cbcbcbabab" }

  105. {"aacc", "bbbb" }

    Returns: {"bcba", "cbab" }

  106. {"abb", "cbd" }

    Returns: {"bcb", "dba" }

  107. {"babc", "abab" }

    Returns: {"babc", "abab" }

  108. {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" }

    Returns: {"zazazazazazazazazazazazazazazazazazazazazazazazaza", "azazazazazazazazazazazazazazazazazazazazazazazazaz" }

  109. {"aaaaaacc", "bbbbbbcd" }

    Returns: {"bababcad", "ababcbca" }

  110. {"abcd", "xxxx" }

    Returns: {"xcxa", "dxbx" }

  111. {"acbb", "acbb" }

    Returns: {"bcba", "cbab" }

  112. {"aaa", "bbc" }

    Returns: {"aba", "bac" }

  113. {"ababa", "babcc" }

    Returns: {"babca", "ababc" }

  114. {"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccca" }

    Returns: { }

  115. {"a", "a" }

    Returns: { }

  116. {"ls", "ww" }

    Returns: {"wl", "sw" }

  117. {"aaa", "bcd" }

    Returns: {"aca", "dab" }

  118. {"aab", "ccc" }

    Returns: {"cac", "acb" }

  119. {"acd", "cbc" }

    Returns: {"cbc", "dca" }

  120. {"acbc", "bbcb" }

    Returns: {"bcba", "cbcb" }

  121. {"aaaabb", "bbcccc" }

    Returns: {"cbcaba", "bcacab" }

  122. {"accb", "cbdc" }

    Returns: {"cbca", "bcdc" }

  123. {"abbc", "abbc" }

    Returns: {"bcba", "cbab" }

  124. {"assds", "asdas" }

    Returns: {"sasds", "asasd" }

  125. {"acc", "cab" }

    Returns: {"cac", "acb" }

  126. {"aacc", "bcbb" }

    Returns: {"cbca", "bcab" }

  127. {"aaaac", "bbbde" }

    Returns: {"abadb", "baeac" }

  128. {"aabcdef", "aaghijk" }

    Returns: {"agaekci", "hafadjb" }

  129. {"abc", "ddd" }

    Returns: {"dbd", "cda" }

  130. {"aaac", "bbbc" }

    Returns: {"babc", "abca" }

  131. {"abcc", "ccdd" }

    Returns: {"cdca", "dcbc" }

  132. {"abac", "cabb" }

    Returns: {"babc", "abca" }

  133. {"x", "y" }

    Returns: {"y", "x" }


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: