Problem Statement
- Find all distinct characters that appear in the string.
- For each of those characters, count the number of occurrences.
- Square each of those counts.
- Sum all those squares to get the value of the string.
For example, suppose Hero has the string "abacaba". This string contains 4 'a's, 2 'b's, and 1 'c'. Thus, its value is 4*4 + 2*2 + 1*1 = 21.
You are given aDefinition
- Class:
- Istr
- Method:
- count
- Parameters:
- String, int
- Returns:
- int
- Method signature:
- int count(String s, int k)
- (be sure your method is public)
Constraints
- s will contain between 1 and 50 characters, inclusive.
- Each character in s will be a lowercase letter ('a'-'z').
- k will be between 0 and the length of s, inclusive.
Examples
"aba"
1
Returns: 2
The optimal strategy is to erase one of the two 'a's. This produces a string with value 1*1 + 1*1 = 2.
"abacaba"
0
Returns: 21
"abacaba"
1
Returns: 14
"abacaba"
3
Returns: 6
"abc"
3
Returns: 0
"wersrsresesrsesrawsdsw"
11
Returns: 23
"abababoabaobooobbbobabbaaobobooa"
26
Returns: 12
"ioaoeoqbkbhl"
11
Returns: 1
"oohlaefleecoookjkoippolm"
13
Returns: 11
"oarobokoi"
4
Returns: 5
"qpmhoiampnokkq"
2
Returns: 18
"bkkjlkiienhicedhoidjocbfgcoaajcaiojmknccoeogfnkc"
18
Returns: 64
"corbodtoktmgqopaqrotoqeqgcc"
20
Returns: 7
"aeefegaggcaffefogcbaeabbgcegebdfaaodgogacgeccaoaff"
34
Returns: 32
"fioooohdabgeceh"
0
Returns: 31
"oaaooaaaaooaoaaaoaaaoaaaaoaaaaoaaaoaaaaaoaaoaa"
44
Returns: 2
"jjhonkmdlofooiibnmlmeomjidljfgmdabcooflgiolaofdof"
15
Returns: 90
"caccbdbcbccooocobdoadaddboooddbaobdbobdccdcaadoca"
14
Returns: 245
"pldcn"
3
Returns: 2
"maoonescoqgalisojljkdookofjpelhmnhooqbodjio"
0
Returns: 191
"gossla"
5
Returns: 1
"occacdaadebofdaceabaoebeafodfocobb"
27
Returns: 7
"ofojoeumeosovav"
5
Returns: 12
"egfihiofckebebhofhogogjohieeoodco"
27
Returns: 6
"abbobobbbbbaaabbbbbaobaaabaabbaaaaaaboo"
16
Returns: 187
"horidknblooooreqkdgqrdlbdbf"
19
Returns: 8
"jeonkhmoibnkojlionoijlhdcgoooollnfomomlnojigjgmebo"
21
Returns: 67
"mrbjsorgedodhbrpngorrjigjbgpdspldinoohlgng"
1
Returns: 145
"oabboaobaaoaaaa"
9
Returns: 12
"aaoaaaaaaaaoaaaaaaaoaaooaaoo"
1
Returns: 449
"oddogcooojfkjoko"
1
Returns: 51
"kbbeoio"
7
Returns: 0
"ov"
1
Returns: 1
"aoadgbgoocbbfoabcoboffgbocebooooooedoabcohaghoff"
34
Returns: 24
"hbmgopcosfjmodcjnoamemorcoloiocbldbkkecobmhnoeio"
12
Returns: 86
"olfpogcnbqjleojqcoqmmoaoclbogfbjonhhlejooopleoncao"
31
Returns: 29
"bobbaacaobacabocccccb"
16
Returns: 7
"ofdaecabocffoccd"
3
Returns: 27
"odocohldmbegoogioglgbokoghiijkfgoh"
4
Returns: 100
"doofkcdjomobodcoldomooldokggoohonooojgllbohfi"
33
Returns: 12
"cdgkoo"
4
Returns: 2
"ad"
0
Returns: 2
"abbaaoababbaaabaaoaabbaaabbbobboaboabaoobaa"
30
Returns: 57
"oacflajhbjhaokdoiokeofoibohofaeokcio"
1
Returns: 151
"aaaaaaaaooaaoaaaaaaaaaaaaaaaaoaaoaaaaaoo"
38
Returns: 2
"gockhobobdfbjhifoffd"
15
Returns: 5
"oviooebliforooqtokjjnaecijmrotwroohcuoboolofxgmfeo"
12
Returns: 84
"adccccadacocdcoaddcbcacdodcdabcabbaodcb"
2
Returns: 307
"ogfoldjdlafofeogecgdkeodbdebkccohekkoogohbchc"
22
Returns: 47
"curnpqiaougmenowhoicjoomvukollpeuq"
22
Returns: 12
"eegabghdfbadgebdhcghgchaeohccefdchacfedofbgffc"
1
Returns: 241
"olblodnneflloaiodokocc"
4
Returns: 36
"aecaaaccacebbcoabcbocadodbeceb"
22
Returns: 12
"dftc"
3
Returns: 1
"ioeoigsoecltdmjppbefsoaapoobcnplooccsgoamoiqoafd"
46
Returns: 2
"bbdbbcabdoaaacoboobocdbcdccobaodaaoooaaaocbccc"
35
Returns: 25
"nvorjmjbdmhojbmtrltqialgaoervoobxopavroowfi"
4
Returns: 99
"cgdoodheacaafbaccgcbeohbebfaghdggcbefecg"
36
Returns: 4
"bbgdmcckmdcofgociookdohfjafoajlahfggfoglojiebcioi"
25
Returns: 44
"kolkbgodcjkaboogijaigojjaonioebmhcmnmljoaegkje"
31
Returns: 17
"afoiohjajokfeooibjfojjdhcjdeoeodfbiajoo"
0
Returns: 211
"oxnvfxwsjpoucnoaoocoaqwuioomjtmprpdopoowvopilso"
13
Returns: 68
"odakkcdbdifmoleldihloioajfhjbodioofacajddggjoioo"
15
Returns: 85
"dxltsjagbwciehqromko"
7
Returns: 13
"soxstirjudooogogkooe"
10
Returns: 10
"noapsleiophocoofooj"
16
Returns: 3
"ohmqooy"
6
Returns: 1
"oknonofqagisf"
1
Returns: 18
"fdijjibkioojojjakodjce"
10
Returns: 16
"ocfohchoefcfbgfocgbeo"
13
Returns: 10
"aqoqollodmjggokecklnoomopbc"
25
Returns: 2
"aeebjciioifobogoogiiicbadd"
12
Returns: 22
"diopg"
0
Returns: 5
"opjojolpdnoggneeajicmikcobonjcoojhnbonedlckhoooio"
38
Returns: 11
"daecedbhgbodabhoooobacfefbhgchfe"
2
Returns: 104
"qaooqououvogdpsajaoslnuobou"
19
Returns: 8
"cnkggdnhgoeb"
11
Returns: 1
"bofoaagdddoefbooadfodgooodobffebcgoeaae"
36
Returns: 3
"eyonwvbtkmdayeokiobpkpymomfgcnosfqooogopfymgrdlkot"
47
Returns: 3
"oefogejeoaofobffjcadaobdjiohcdfbcdobcfgbfcheejac"
15
Returns: 109
"ldbdhkhmlnjjomooed"
6
Returns: 16
"ooocdbadcadocabddoabacddaaacacdaobc"
32
Returns: 3
"ftpcopajodywgoobscaycucvlrqpfxjtopx"
35
Returns: 0
"bdlcignokifoooanomnocoipoepboiaacbhnojococfpmaakkj"
19
Returns: 69
"abc"
2
Returns: 1
"cbflabeeggogomeje"
16
Returns: 1
"baocbbaaobacb"
2
Returns: 33
"aaedddaaoebodadeedaecbdeadcdddd"
5
Returns: 146
"beneooalctmo"
0
Returns: 20
"efeooacboafodobcfdococcocfcfebefeo"
23
Returns: 19
"begdcggdccfcooehoocgoegfocbgfdoghcghgehchoeoofaoao"
8
Returns: 230
"lobghjgolkieodoiooicoinoceclidhjfoodk"
21
Returns: 22
"aibedfeieaohiiia"
13
Returns: 3
"bahoohfohgcdooeogebohgoeofooacdogogg"
10
Returns: 86
"fibdeoohgfdoojjfaoccfooifoojobcacfogbocjhicfg"
19
Returns: 66
"bobbboaabbaaaoaoabbooaabbb"
15
Returns: 41
"cobaccabaabaabbbababocbocb"
7
Returns: 95
"coofbcoccaghdaoaoeochoeaodooodeocdabifoaoeboo"
40
Returns: 5
"bbobabobbbobbbbaaabcocabbaabcccbccobacoo"
9
Returns: 241
"ooebloorooqnbrioodkdqroooblqgopofmplklbomooocrfdao"
3
Returns: 313
"kkohhldaefpkoosgkoooopces"
23
Returns: 2
"solocnsceijomomf"
3
Returns: 19
"agogceoffgbeoodaecaccbobodbbobbgoodcoofocggdofgga"
45
Returns: 4
"efhd"
3
Returns: 1
"shoqamtooi"
3
Returns: 7
"olhoologkfiommcnggfhdoeeno"
9
Returns: 27
"nlhfhhooblsauasioooolmpovooexhtoypjoueo"
3
Returns: 136
"cdbbabaacdbaeaeocbbbeb"
13
Returns: 15
"uurleoooemobhfhloorponh"
14
Returns: 9
"cgoffcedcdaeadgdfoafadagafoadofceadbgcecdcoobb"
3
Returns: 247
"klfohghoco"
10
Returns: 0
"diaoohbaojoedcfgacoejajcofaj"
28
Returns: 0
"qmfkqohonagpoqjo"
4
Returns: 14
"qqqqqnqqiqzqiqqqiqqqqzqkjpsqqjqqqy"
20
Returns: 26
"zpzqqqqqtpxqiqxu"
12
Returns: 4
"qiqffqqqqedquqqqfiqxqii"
21
Returns: 2
"kqpqqqqisqqhqqqiniq"
19
Returns: 0
"iqqqiqrqmiiqsiggqiqqqiqqsqq"
6
Returns: 123
"qyqdqzqqqqwqqqqqitqqqqiqwqiqqqipmiqbkhqvqiq"
21
Returns: 64
"qqxwyqixqwqzqxqqzqqyqiyxqyqqiqqqqiqqqqzwiy"
28
Returns: 34
"qiqtqqkqikxqs"
8
Returns: 5
"qqlniqdhdiqqiqq"
2
Returns: 41
"qzqiqqzzqqqqzqqqyqiyzqiz"
3
Returns: 149
"qqqzqizzqziqqqqqzqzz"
8
Returns: 54
"qiiqqzwywqqvqiqiqiiiqziqxiiqvqzzxyqviqqqwq"
23
Returns: 53
"qqquixqqqiqqqiq"
3
Returns: 60
"kqqnjqiqtwqhquqnqqqqqoqiiqqiqqqqqqmqdqqmiqiqvnu"
3
Returns: 590
"qr"
2
Returns: 0
"iq"
1
Returns: 1
"itqq"
1
Returns: 3
"qqqqiqtiwqqxqqqqqq"
8
Returns: 32
"qqiqspzqnixyqqsipiit"
11
Returns: 9
"qqxqwqqq"
8
Returns: 0
"xqqqqqyqtqqqe"
12
Returns: 1
"wqqqovqpqqoqqqhqwqqirqrqigqqlrqyi"
33
Returns: 0
"jmizlqqqqqqgqiiqiiqqqqqqqivqqijiqqiqqzqqiikku"
27
Returns: 42
"sqofqqqqqq"
9
Returns: 1
"iqtq"
0
Returns: 6
"xfqqmuqiaaqqqqiiqiqndtyiqeiqquiqqiqqimqqaiop"
4
Returns: 322
"qsitiiqt"
1
Returns: 13
"qqzqqiizqqiqzzzzziqziqqqqiq"
12
Returns: 75
"qqtsituqqqqiqiiiqsqvy"
2
Returns: 85
"rqqqyqqqivqzqqqqvqqpxqqqqqqpiqqqqqpsqtqqsqqrtqq"
33
Returns: 22
"qzyqqiqqqqiqiiqqqqqqqvyvqzviiqiyqyqziqqqvvqi"
11
Returns: 275
"qziqiqrqqsqiisvivqutqq"
18
Returns: 4
"qqqiqqwqqiqqqwqqqqi"
18
Returns: 1
"iqqyqiqqpiiqiqgqiquqvqiqqvqhqqqqz"
4
Returns: 255
"qmrqtqzqisqiiqqqiqqqzlqiqiqiqyqiqqqiqqilq"
30
Returns: 15
"qvqpqqqqqqxyqqrqqiqit"
2
Returns: 131
"eqqngomiqmmqjgqimqqqmqiqiqqqxitvqqiy"
19
Returns: 29
"qqqqqqqqyqq"
3
Returns: 50
"qiiqiehqqqqztqqqmgseqqqquqiqiiliqqkiqqquiq"
13
Returns: 161
"yqqqtqqqqqpuoqqqvqrrwziztqqrqqoiqzqqoqmqquqzuiqvni"
44
Returns: 6
"yzqqqxiqqyyzqqiqyqiyyxiqqxqzqqqyqqyqqqxqqiqqzqzz"
32
Returns: 52
"qqqpiiqiiqqgyiqsqqqqqqqjqvqxquiuq"
17
Returns: 36
"kqqqpqqjizpiqmqiiqqquqqwpm"
25
Returns: 1
"qqqqiiqiiqqvq"
0
Returns: 81
"uqwiqqqqqrzqqqqqrqiiiqqqqqqq"
2
Returns: 312
"sqisniirniqqiqpqjqzpqqqiqnqqqqqiqbsnkijqqiqqqqi"
14
Returns: 199
"qqixqqhiqtqqqnioqiiqqqjiqq"
7
Returns: 91
"uqqqwqqqjqiqlzqqqqqqi"
14
Returns: 7
"zqqqyiziqqqyiiqqzqyiyqqyz"
3
Returns: 130
"mqqtqqqqzqvqriqqqimqqippq"
24
Returns: 1
"sqiqqqqrmpqqeqqqqqgiqiqdqqdqqqqqqkqwqqt"
31
Returns: 8
"iqr"
3
Returns: 0
"wqxyxwqqxiyqqiqqiqqqqiq"
19
Returns: 4
"qqqmqjqqklkpq"
9
Returns: 4
"iuqqdqxmyiqqqqqqqiyjqinqimq"
15
Returns: 18
"qwziqqqiyqqiiq"
12
Returns: 2
"iqqqzxme"
3
Returns: 5
"yqpqssqszowzq"
3
Returns: 16
"qqqqiiqiqoqqnqqwqiqqiqqq"
13
Returns: 35
"isqqrioq"
3
Returns: 5
"iiiqqiqqqzqqzqi"
10
Returns: 9
"zzqqqiyzqqqzqzqqiyyzqyzqq"
25
Returns: 0
"qvwiiiqxwquixy"
13
Returns: 1
"qqqqqzzqiqqqziqzqiqqqqzq"
22
Returns: 2
"qqqqq"
1
Returns: 16
"qqiqiqqzqqqxiwqqqxxwwqqqqwziqqwxq"
28
Returns: 5
"qqqgiiqqvqqiimiaiqwiiq"
21
Returns: 1
"aaabbb"
3
Returns: 5
"aaabbb"
6
Returns: 0
"aaaaaaaaaa"
3
Returns: 49
"abbbccc"
3
Returns: 6
"aaaaabbbbbccccc"
5
Returns: 34
"waefawefdz"
4
Returns: 6
"aaaa"
4
Returns: 0
"aaaaaaabbv"
3
Returns: 21
"aaaabbbbccd"
4
Returns: 13
"abcdeabcdabcdeabcdabcdeabcdabcdeabcdeeeeabcdeabcde"
50
Returns: 0
"aaaabbbbcccc"
4
Returns: 22
"aaaaaaaaaaaaaaa"
3
Returns: 144
"aaaaabbbbb"
2
Returns: 32
"aabbbbcccccc"
5
Returns: 17
"aabbccddeeff"
2
Returns: 18
"zzzzzzzzzzza"
3
Returns: 65
"aaabbbb"
4
Returns: 5
"aaaaaaasssssssdddddddd"
11
Returns: 41
"aaabbb"
2
Returns: 8
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
30
Returns: 400
"ababababababababa"
4
Returns: 85
"aaaaaaaa"
0
Returns: 64
"aabb"
2
Returns: 2
"dhgahjdgjagdjagjdgajdgajhdgjhgdhjagdjhagdjhag"
13
Returns: 206
"abcdezzzzzzz"
4
Returns: 14