Problem Statement
You may rearrange the flowers in your garden into any order you like. (Formally, you may swap any two flowers in your garden, and you can do so arbitrarily many times.)
You are also given a
- No two adjacent flowers will have the same color. Formally, for each valid i, G[i] and G[i+1] must differ.
- For each valid i, G[i] must not be equal to forbid[i].
Definition
- Class:
- ColorfulGardenHard
- Method:
- count
- Parameters:
- String, String
- Returns:
- int
- Method signature:
- int count(String garden, String forbid)
- (be sure your method is public)
Constraints
- garden will contain between 1 and 15 elements, inclusive.
- Each element in garden will be a lowercase English letter: 'a'-'z'.
- garden and forbid will contain the same number of elements.
- Each element in forbid will be a lowercase English letter: 'a'-'z'.
Examples
"aaabbb"
"cccccc"
Returns: 2
There are two solutions: "ababab" and "bababa".
"aabbcc"
"aabbcc"
Returns: 5
We have 5 solutions: "bcacba" "cbacba", "cbacab", "bcacab", "cbcaba".
"aaaabb"
"xxxxxx"
Returns: 0
"abcdefghijklmno"
"zzzzzzzzzzzzzzz"
Returns: 674358851
The answer is (15!) % (10^9+7).
"a"
"b"
Returns: 1
"ba"
"ac"
Returns: 1
"acabbcabacacb"
"cacccbacacaaa"
Returns: 6
"cabbabbcb"
"aaaccbbaa"
Returns: 0
"baaaacbacabcac"
"aaabbaccacaabb"
Returns: 0
"acabccaabbb"
"cabcaacccbc"
Returns: 6
"bcaabbc"
"babcbca"
Returns: 5
"bccbbaca"
"acbcabbc"
Returns: 4
"caaabb"
"acaaab"
Returns: 0
"aabbcabcaacab"
"aacacbaabcabb"
Returns: 0
"bbbbbcca"
"cabcccbc"
Returns: 0
"ccaccdabcadaab"
"cbabaaaabbabcb"
Returns: 15
"cdcbcdddac"
"cbbaaababb"
Returns: 63
"adbabdcaaa"
"bacababbcb"
Returns: 34
"aabdacbdabc"
"bbbabccaccb"
Returns: 245
"adcabbcdaad"
"bacbbacaccc"
Returns: 468
"ccdcdbbabca"
"babccbbcbca"
Returns: 234
"dcdacdddddddddc"
"acacbaaaaaccbca"
Returns: 0
"cddaccbdcdcda"
"cacacaacbaaba"
Returns: 187
"bcccbcdbaccdaa"
"acbcbbbbabaaba"
Returns: 729
"dccbacababdb"
"baaabaaaabca"
Returns: 192
"abebbbbeeea"
"abedccdddbb"
Returns: 8
"adadcdbcceadccd"
"ebcabbaeabeecab"
Returns: 41593
"caadabcedaa"
"debecdabdca"
Returns: 198
"becacaddbccdba"
"eeaeccacbbdada"
Returns: 71624
"ebcbcdccaced"
"debeabcddbce"
Returns: 2552
"cdeebaabdc"
"abdaeccaac"
Returns: 4168
"dadbcbbbdc"
"eabcebeecc"
Returns: 194
"cacabaeedca"
"caeebceedbe"
Returns: 1544
"bebdcdcaaabeead"
"cbdecddbecababc"
Returns: 596037
"bccebabaadb"
"aaabebecdba"
Returns: 811
"ffeeececcfeff"
"gebfabfcbbdfa"
Returns: 78
"ffgegcbbcddbe"
"gbggdaffebfgc"
Returns: 1006342
"ccgbdegbgd"
"cagfcgcgeb"
Returns: 3084
"eaacfeddcb"
"dcggfcgbda"
Returns: 26715
"ecefffcgcgbedd"
"gdbccgfgegfabg"
Returns: 1882391
"bgbebdgedb"
"gaeffbgecd"
Returns: 476
"feeeeccgabbecgb"
"eggfbgbabfaefee"
Returns: 292446
"cfaebbfaefbdgda"
"fdggecfefefgaad"
Returns: 30039183
"cgbeaacedd"
"ddgcacddfa"
Returns: 12702
"eecagccgdd"
"cdeedgeeca"
Returns: 1794
"xoeqdaxzvtg"
"omzgvfbidqy"
Returns: 9345936
"ifoojdqpnlb"
"pimolvdxuqn"
Returns: 7793214
"olwngrojoefy"
"nfcckigyjuty"
Returns: 26051880
"sgpjveswkrofmk"
"gpvxanwcikqhrc"
Returns: 596706657
"dvsvpzzogxru"
"stqrlytszeql"
Returns: 53817120
"skdmglfruiwhkbk"
"dlrkeevtfkkccds"
Returns: 357533612
"ovdefdzezxtj"
"ikjmdfaqykbz"
Returns: 20452104
"zsofismlmrpxw"
"lmtjccmtkjmts"
Returns: 516862080
"jeupdqkrirq"
"zrqlgnegvvv"
Returns: 4186080
"fsiuviffzosn"
"awxxdlgoojkl"
Returns: 6461232
"fubjezameqoifzh"
"grxdeefjetosojv"
Returns: 564632252
"yhniyjvgrcdzfkl"
"zunnqobmkkvdzbx"
Returns: 486487332
"lgruepvsoajniet"
"elbejvutrnlqswl"
Returns: 605755796
"wttqefxzdbdwpyk"
"hnfqbckiekrznbc"
Returns: 397820581
"bjlpdxqktxaqmbt"
"khtlnnmefqeezis"
Returns: 737386540
"vevikjpsopmkxon"
"npojetneecdjwiw"
Returns: 167219672
"endvhoqzjamcqdg"
"nhcsxlhhvflguli"
Returns: 356269830
"skjyycyfbyhykgr"
"jxyquofwnklzmhr"
Returns: 335041944
"xfbxvvnkddffyel"
"wcmzyoehtyxngjo"
Returns: 476478823
"phmrkziafuzxphz"
"amumsdhbzqqswek"
Returns: 10375405
"fubjezameqoifzh"
"grxdeefjetosojv"
Returns: 564632252
"yhniyjvgrcdzfkl"
"zunnqobmkkvdzbx"
Returns: 486487332
"lgruepvsoajniet"
"elbejvutrnlqswl"
Returns: 605755796
"wttqefxzdbdwpyk"
"hnfqbckiekrznbc"
Returns: 397820581
"bjlpdxqktxaqmbt"
"khtlnnmefqeezis"
Returns: 737386540
"vevikjpsopmkxon"
"npojetneecdjwiw"
Returns: 167219672
"endvhoqzjamcqdg"
"nhcsxlhhvflguli"
Returns: 356269830
"skjyycyfbyhykgr"
"jxyquofwnklzmhr"
Returns: 335041944
"xfbxvvnkddffyel"
"wcmzyoehtyxngjo"
Returns: 476478823
"phmrkziafuzxphz"
"amumsdhbzqqswek"
Returns: 10375405
"orizaaahhaaanat"
"gjroikmhdjqqvcc"
Returns: 481344
"aaegaaaiamaaaay"
"mltxjzbbsutitnk"
Returns: 0
"zaagmakabarkbaa"
"zjjmtrahqvobevd"
Returns: 134730
"sajawpkujagakay"
"tjoeiaukosehpnz"
Returns: 136581432
"usazerhatxqaaaa"
"awjmzjwzxhbqzoo"
Returns: 19992720
"gaaxfaqacafiaaa"
"xkkpharspbeqrvu"
Returns: 2160
"hofpayffadgssra"
"djdhckcackojcwp"
Returns: 690711579
"jarapaanyeapazr"
"yfxyehealumhcfh"
Returns: 7706352
"ahlmauagtwhvaja"
"vlhciilshlhdihe"
Returns: 298324800
"aspaztaaacjaaga"
"lrafnzqsailuwsr"
Returns: 0
"acbdefghijklxyy"
"abjfldsafjkldaw"
Returns: 7869757
"aaabbbcccddefgh"
"zzzzzzzzzzzzzzz"
Returns: 700479360
"aabbcccdefg"
"aaabbbfffee"
Returns: 96228
"abcdefghijklmno"
"abcdefghijklmno"
Returns: 66512367
"aabcdefghijklmn"
"zzzzzabceyjiama"
Returns: 851355527
"abbcccddddeeeee"
"abcdeabcdeabcde"
Returns: 64225
"abcdefghzxvfj"
"mmmmmmmmzmmmm"
Returns: 431295986