Problem Statement
The spread of a row of chocolates is the maximum number of adjacent chocolates that all share the same color. Formally, the spread can be defined as the maximum value of (j-i+1), where i <= j and all the chocolates in the positions between i and j, inclusive, have the same color.
You are also given an
Return the maximum spread she can obtain.
Definition
- Class:
- ColorfulChocolates
- Method:
- maximumSpread
- Parameters:
- String, int
- Returns:
- int
- Method signature:
- int maximumSpread(String chocolates, int maxSwaps)
- (be sure your method is public)
Constraints
- chocolates will contain between 1 and 50 characters, inclusive.
- Each character in chocolates will be an uppercase letter ('A'-'Z').
- maxSwaps will be between 1 and 2500, inclusive.
Examples
"ABCDCBC"
1
Returns: 2
One optimal solution is to swap chocolates at positions 2 and 3, obtaining the row "ABDCCBC", which has spread 2.
"ABCDCBC"
2
Returns: 3
The only optimal solution is to produce the row "ABDCCCB".
"ABBABABBA"
3
Returns: 4
The row "ABBBBAABA" can be produced with 3 swaps.
"ABBABABBA"
4
Returns: 5
An optimal solution is to produce the row "AABBBBBAA".
"QASOKZNHWNFODOQNHGQKGLIHTPJUVGKLHFZTGPDCEKSJYIWFOO"
77
Returns: 5
"ZWYZ"
2
Returns: 2
"STDCJAHMSUXMPVNGGSCGXLFCFBJ"
2
Returns: 3
"RQNKVRWVAKQVIEKDRQLJUS"
5
Returns: 3
"HWEZHPUZYAYMNZGUSWRBWJCUZCCJZTWIPCKWTEYUGWGTVON"
59
Returns: 6
"ETIPVERAHABCWMTAWPUAPOIOUBJIOBVUU"
14
Returns: 4
"SKAURDVVZH"
32
Returns: 2
"FFUHVKPJEQUOGYLCURMMBOGUREPTNFVTKRAFB"
23
Returns: 4
"HKNVRLJVFAHSDYAZRGQKUVHPFYRNZJDIUQGNB"
16
Returns: 3
"HRSBUSDTJKLWGGDVLEOYFYEOUUUHYJRHAJIWDNRPZ"
19
Returns: 4
"FIQCVURWAPAQJWKSUVJBXVLT"
15
Returns: 3
"MPYOAEYTIVPZRRQTHBQTTKOFMLCXGEYSUXIWDIPL"
13
Returns: 4
"NXYDRGHHBA"
28
Returns: 2
"HFDLFMQDGMAPIFZATDHGBFLUNSBPVUFEAKSFYKKFWNW"
74
Returns: 7
"VGLZNTCTFWGZXXUREBTPTANDLUZYQFSMMELZZPUGLDGKACD"
51
Returns: 5
"KGCKWIDKWJVXKMSRZXZJZBPEHOCFPQJCYLMUVRHRACPLRJEQ"
12
Returns: 4
"CFGRMPHQVWGGYERLBP"
7
Returns: 3
"GFMVSDGWWMBYUHPGXWW"
16
Returns: 4
"FCT"
2
Returns: 1
"GMKKWRPJOJ"
56
Returns: 2
"ECDFFABAFEAEBBFABAABEDAFFBCCDABBAEEACFEFBFEAEBBDBB"
126
Returns: 13
"BAAABBCCDDDDCDDAACADBCCBDDDCCDDDADABACADCDDADCADAA"
113
Returns: 19
"CBDBACDCBCCBCCDCADCCCBCBDDBADABCBADBCDDABBBDDACADA"
80
Returns: 15
"BBACCABACACAACAACBCCCCAABAAABBCCCABCBAACBACBAACABB"
143
Returns: 20
"EEEAADADABCECDCEDCEGDFEGDAGGCCDEEBCEECFCBAABCAGFCB"
91
Returns: 11
"FFECCEADDDCEDEAFACCDCFFABDDACDDAAACCCDEFAEBDDAADCA"
108
Returns: 13
"CBABBBCBCACCBBCABBACAAABABBACCCABCBABBCACBCAAABCCB"
158
Returns: 19
"HCAGGAHFBHFFFDHCAFDHHEEHCFAFCFDBHDAGEHDFGACEDBGEGB"
60
Returns: 9
"ECGDAFBBDEFEDCDAFEACBAACBBCAGCEEEEAECGEEBABFACDFEE"
102
Returns: 13
"EFFDEGCEGGGBBEDCEAGDFFGFADECACFCGBEDAEFGDCADAEFCCE"
126
Returns: 10
"HKJIKDSZLRXKNSPPNAMTPXDLOVUEGLBOVLYGQS"
27
Returns: 4
"CTDNLTDFGIBMFFCHLCJFRYTOILKCPRLTKQJXMODUWGHDNLLYNU"
67
Returns: 6
"MXKEPAVPQUENHXVWTCPLTQZOWQBOKTXWQJCHLXXCUDRBCMZVOQ"
46
Returns: 5
"JJHZFXATIVSGMBJTNISPCXGFZUEULVCUEMULJWETSXAGAJZNRU"
25
Returns: 5
"WRMDRHINUFSOLEKYPJCJBBJHCUIRNCYLWMPNTZCNGUERAQPQZT"
21
Returns: 4
"CXKLBGWUTASFWFWLAVOQBIWUJMLBOECSDOEEUAZPARWZYSKBNY"
40
Returns: 5
"OJPKSBVVRCXKFLOKHQLWSETRDLCEBAXRJMCDPXYJZXTFKJRRZC"
56
Returns: 5
"TIJLNWNRXPQPBETEWQFFSEYZPJSIIWYDEHOSEDLDTEUUINAGGH"
19
Returns: 3
"AMLZDUTLEPMITTWLZCZDVDZRNPTUVBFXPTYUNRHUGTCZPANOCM"
60
Returns: 6
"ZRVSEKMYHPGEGZCAMVJGBFKCUNRKRFGRWBJBLXBUMHASGCUVXG"
45
Returns: 4
"ALOCHDURUBZNYAXBNWCJJKJDQNALKGPMTFRAKLTEMTSMVRNLNQ"
61
Returns: 5
"WCECURCGEKXSDEJFOWYULTMXRDNERFYPHETBYVJEFIWKOGPCEQ"
85
Returns: 7
"AAAABBABAABABBAABBAABAABBAABAAABAABBAABAAAAABAABBA"
156
Returns: 31
"BAABBABBBAABAABAABAAAAAABAAABBBABBBABBAABAABABBABB"
110
Returns: 26
"CBDBDBADADAACCBBAADACCBAABDDDACBCCCBDCAACAAADBBDCA"
131
Returns: 16
"BABAAABBAAAABABAABBAAABABAABBBABBBBBBABAABAAABAAAA"
188
Returns: 28
"NXIASZWQAGIX"
4
Returns: 2
"CACBBCCDCCCEBCCCCCJJJCBBCKLBCBBCBSCSBWWWCWWCWCCCC"
33
Returns: 14
"CBABBACBABABCCCCCAABBAACBBBBCBCAAA"
8
Returns: 7
"AAABCD"
1
Returns: 3
"ZZZZZZZ"
3
Returns: 7
"QASOKZNHWNFODOQNHGQKGLIHTPJUVGKLHFZTGPDCEKSJY"
1234
Returns: 4
"AAABBBBBBBBBBBBBAABB"
1000
Returns: 15
"ZAZAZ"
2
Returns: 3
"QASOKZNHWNFODOQNHGQKGLIHTPJUVGKLHFZTGPDCEKSJYIWFOO"
2500
Returns: 5
"ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG"
2500
Returns: 7
"AAAAA"
1
Returns: 5
"AAABBBAAABBBAAABBBAAABBBAAABBBAAABBBAAABBBAABBBBB"
50
Returns: 15
"A"
2
Returns: 1
"ABCDBBVNBBB"
6
Returns: 5
"AABBCCCCCFGFGFGFGSCDCDCDCDCDFGFGFGFYYYYSESEWWSESEG"
2500
Returns: 10
"ABCDEFGHJIB"
4
Returns: 1
"Z"
2500
Returns: 1
"JWSMEADGLXDIUKWZGNXWSILWDJBWMGCFVLSHJUUKKTHDEEWBHW"
1
Returns: 2
"CDUCACBC"
2
Returns: 3
"ASDSDRGRGGEAAARRQWYUAAHAAUTNFAA"
55
Returns: 10
"AACAAA"
1
Returns: 4
"AABBCCDEFFGDTHBDBAADSBDDBSUSIDAPQZAIDTTYYAAZYYDBD"
37
Returns: 7
"ABBACCADDAEE"
2
Returns: 2
"ABACADAEAFAGADAFAGAVBABABBBBBBACADADAFA"
50
Returns: 13
"DACDDBEDEEBCCECCCADDAEDBBAAEABEDBEEABDCCABEACECCCC"
95
Returns: 10
"ABDDSCBSDXSFGFSSSDCVDSCSSXXASSSWCAXA"
20
Returns: 8
"AABABABABABABCCCBBCBABCBACBACBBCBCCBCCCBACABCBCBC"
6
Returns: 7
"A"
1
Returns: 1
"Z"
10
Returns: 1
"AABCBACAA"
5
Returns: 4
"AAAAAAAAXA"
1
Returns: 9
"ABBBBBBABBCABCBCBCAA"
1
Returns: 7
"ZZZZZ"
1
Returns: 5
"ABCDEFGHIJKLMNOPQRSTUVWXYZQBCDEFGHIJKLMNOPQRSTUV"
2500
Returns: 3
"QASOKZNHWNFODOQNHGQKGLIHTPJUVGKLHFZTGPDCEKSWFOOWEE"
2500
Returns: 5
"ABCDEFGABCDEFGABCDEFGAZZ"
11
Returns: 2
"CCBBCBAABCCCBABCBCAA"
91
Returns: 8
"ABCADAEA"
2
Returns: 3
"ABCDEFAAAHIJAA"
6
Returns: 5
"BABCDB"
3
Returns: 3
"ABCDA"
1
Returns: 1
"EDADGECCBDFAGGHIBDJFIFEHBFFJBICHGFDACCDJBAIBEJGAJ"
5
Returns: 3
"ABABCAABBABBBBAAAABBBBAAAAABACADADDDADDDDAACCACADD"
67
Returns: 17
"A"
2500
Returns: 1
"ABCDASAFA"
2
Returns: 3
"AABBBAAAABBBAAACCAA"
14
Returns: 8
"ABCDEFA"
2
Returns: 1
"AAAAA"
5
Returns: 5
"YEHXIDONKPSZLVCNGMPKYTDAOP"
50
Returns: 3
"CAAACCCCA"
3
Returns: 5