Problem Statement
For example, let's S = "TOPCODERROCKS". It has one 'T', three 'O's, one 'P', two 'C's, one 'D', one 'E', two 'R's, one 'K', and one 'S'. Thus, if the girl doesn't change any letter the score of the word would be 1*1 + 3*3 + 1*1 + 2*2 + 1*1 + 1*1 + 2*2 + 1*1 + 1*1 = 23. However, if the girl chooses to change the 'R's into 'S's she would get "TOPCODESSOCKS" with score 27. Even better, if she changes the 'C's into 'O's she would get "TOPOODERROOKS" with score 35.
Now the girl wonders what is the maximal score that can be achieved for various words. Help her by writing a program, that given the
Definition
- Class:
- EllysSquareWords
- Method:
- getScore
- Parameters:
- String
- Returns:
- int
- Method signature:
- int getScore(String S)
- (be sure your method is public)
Constraints
- S will contain between 1 and 50 characters, inclusive.
- Each character of S will be an uppercase letter from the English alphabet ('A'-'Z').
Examples
"TOPCODERROCKS"
Returns: 35
The sample from the problem statement.
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Returns: 28
This time S contains each letter of the English alphabet exactly once. Elly should change any letter into any other letter.
"AWOIDUIWAHCSZNGAIOWIAWEWIUYTIUEAXKLMFCAWMAWVAWUBVA"
Returns: 374
Random keystrokes on the keyboard.
"ROVERWANDERERNOMADVAGABOND"
Returns: 108
"WITHOUTITIMJUSTESPR"
Returns: 65
"X"
Returns: 1
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Returns: 2500
"XY"
Returns: 4
"XYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXY"
Returns: 2500
"ABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXY"
Returns: 108
"ABCDEFGHIJKLMNOPQRSTUVWXYZAAAAAAAAAAAAAAAAAAAAAAAA"
Returns: 700
"ITISNTWHATYOUSAYITSWHATYOUDO"
Returns: 114
"ITSJUSTABESTUNDERYOURBEDINYOURCLOSETINYOURHEAD"
Returns: 212
"ANDYOURUNANDYOURUNANDYOURUNTOCATCHUPWITHTHESUN"
Returns: 318
"SOHEREIAMSINGINGWHATIJUSTCANTSAY"
Returns: 118
"EVERTRIEDEVERFAILEDTRYAGAINFAILAGAINFAILBETTER"
Returns: 338
"NOZAPHODJUSTVERYVERYIMPROBABLE"
Returns: 76
"TOIUMRQLMA"
Returns: 16
"TOPCODERINDIAREGIONAL"
Returns: 61
"FROMALLTHETHINGSIVELOSTMYMINDIMISSTHEMOST"
Returns: 197
"CARPEDIEM"
Returns: 15
"OIHUPJPMPJBCKPGLKZIPNTXOYYNIPIVPMIH"
Returns: 181
"JVKWGVKLYBKNSAZUWEEMHAKBRAIEEMIBRJSHHVMPMEGM"
Returns: 182
"HSIDWPOPPKCXZUAJGAJHSVWQ"
Returns: 52
"KPBQWLEGAIFYMMJDZJDJVY"
Returns: 46
"XKKIWZQYARSWCUJGJOVTPOVOIHVLXLZZJGCM"
Returns: 92
"DNYLYYEALTUVZJMYOTAYEIVFIMXKELFX"
Returns: 108
"XQTKZMHAPJGOGHKO"
Returns: 32
"WDOVPLXVCGYQAWRGW"
Returns: 39
"GRIIQPOOMQARCITFHSSXOH"
Returns: 60
"IPUFOATAXJSRDEDCDLK"
Returns: 39
"IIIGRMBYZYJGGKPKEYZILHWQPLVXHVDRYGLAR"
Returns: 127
"OSSCPTJNCMUC"
Returns: 32
"WCYXJT"
Returns: 8
"KZSVVQCXFKPYMIBFRNHUJJVF"
Returns: 58
"PJNO"
Returns: 6
"UQJGEBDTNRMLOZPIERFWIGQLIHSWPOYCN"
Returns: 69
"AXJSIGOPDZTEDRYHXTILPQPFGHUQQLWHXJPKXJLKUNZ"
Returns: 137
"ALYGUUNNNYQUQJTUVOWDRAQVWCPQPDYGSFQ"
Returns: 131
"ETXBVEVBVEAEWKADNITDUTWJHFTCKEVORJVWPJFOL"
Returns: 167
"JWXDESVKOZGEXLNQ"
Returns: 28
"HKDFLL"
Returns: 12
"Q"
Returns: 1
"FJIOLLWDGYLKMZZRSIBNOFUSVSJ"
Returns: 67
"CGXLUZLIXOEBZXFJLOMXID"
Returns: 70
"MIQSZTLMYLDZBKPDYNRRLBXHDYHIMNKSF"
Returns: 91
"WZOZZRSLTLSJPZIYDLKXWEUUIPYAOLCCK"
Returns: 107
"ZAXSHSSGVVJVPDPLLYIRZUTRWWDO"
Returns: 70
"NXZYTO"
Returns: 8
"OQTHZPMO"
Returns: 14
"LTEYJNUINOEMVKBYEFXKTAOOSKRMRMV"
Returns: 83
"WUNIJJAFP"
Returns: 15
"HEQGNPYCQERCDKHPQTXHCCKGMNYDEKEXXNLLDQO"
Returns: 145
"QKKZXTKSXGVLSUPTUSGYYHKGEGFAQBOPMIZMRKXEWDVYQ"
Returns: 155
"CDKGEPXYXMP"
Returns: 23
"IOOZTSOKUROXZNBLEQZEA"
Returns: 65
"ROHFAAFTDASNEX"
Returns: 34
"AJMZAIXOMRTZOKEUHPGQEFJBLYXFZDDYKWGYMHLSAPVRCXPGMQ"
Returns: 142
"OBQPKYHMKPLZHNXOMTPSTCGBBITGRWNFCPMLCUPVXVRAFAOE"
Returns: 148
"FXIYCNIFOCU"
Returns: 25
"CTELSJKETHSSDQJOVZDCMVFSNBNBLN"
Returns: 88
"ECAADBGADEDBACICDEABACGBCAG"
Returns: 195
"FGABCFAABABEAABAOBBACKAFHAKDABBIAGHJAA"
Returns: 514
"BAPBQABALADAIACACBB"
Returns: 153
"DHAABNDETABAABEFH"
Returns: 79
"GGBFACCDDAABFEGABEAFEJAKCIAFABABCFFDGEHLCABBG"
Returns: 405
"ABAAAA"
Returns: 36
"AEACKCBEDEHBABAAFCBABABFEAAACBFEFGAFAAAHCMD"
Returns: 527
"E"
Returns: 1
"HPAAACFACAKBAIBADAFAAB"
Returns: 182
"AAADHADAIDAAEMDBBACMDAGDBAAEGAAACBEEBBACAAAB"
Returns: 696
"BDCBIFBIABDCAAABADAAAACSCAAABAAA"
Returns: 472
"EFFAABACHAEACQ"
Returns: 60
"CCANIEEL"
Returns: 20
"BC"
Returns: 4
"DABBAEBFEBABBGBBAAABGQGBCABBGFDAABOIGDAEAGAB"
Returns: 738
"FDDACBFAMAADAEB"
Returns: 75
"AKBCAEDJBASDECADBBEGAAHHAFSAAEBE"
Returns: 246
"BDECCKABBABDBBAMACABAEABPAAAEAGDAA"
Returns: 472
"ABBDBABLEDBCCAIGJAFGABABAG"
Returns: 218
"CCAAAACFEAIDABCAHACBACGNAAABHEGADABAFFADDADCAIAA"
Returns: 796
"IEECBAUAACUBBCHAIACDLBH"
Returns: 115
"LFCBBFKFKFCAAAMADEJDABIHABDBBBGCKCABAADBA"
Returns: 425
"BFAHGAAABPFABBFABBBHBBBCEBAADBDABABA"
Returns: 646
"ABFIHAMBADAGBEEAJEIEACCICAAACAA"
Returns: 265
"AECADHCBAOMNAABBADOBECHAAACCGEBBAOABCAEDAAMIA"
Returns: 565
"BBDBAAACAEGAAJAAAEJB"
Returns: 180
"DDEBBFAFABAICDEJEDBECCIBAAADAGDABAAAFB"
Returns: 400
"ALGBCEFCAAEHDBBAEBCBIATIA"
Returns: 149
"DBEHEAECCAH"
Returns: 35
"BBCJECKDFMBANACABKAADACAAMALKDAAB"
Returns: 299
"RAJAGGEBAAAMDAABCACJBCADBBBAJCBAC"
Returns: 369
"AMBBDGAAFCAAGACEAECAAEDKBBAAAECAAADDAAA"
Returns: 539
"ABAEBBCCCBBAFFADFACDDGAEBBABCMDAF"
Returns: 319
"HAAGCDAAAQAAAABFFBKAEBBCACAABADABMACHABDGAALWJHEA"
Returns: 781
"F"
Returns: 1
"BAAFEJACBAFBA"
Returns: 71
"CABBCGABCABAJCAALCACQAIADAACFCDKEDCEABACBHO"
Returns: 587
"AGADD"
Returns: 17
"AEADBADAABBBDBFBA"
Returns: 155
"AAEHAACAABEEAADAKVMACAFIGAAKJBBCG"
Returns: 289
"AAAAAAA"
Returns: 49
"A"
Returns: 1
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
Returns: 2500
"AABBCC"
Returns: 20
"AAAAA"
Returns: 25
"AAABBBC"
Returns: 37
"AABB"
Returns: 16
"AAA"
Returns: 9
"AABBC"
Returns: 17
"AAAAAA"
Returns: 36