Statistics

Problem Statement for "EllysSquareWords"

Problem Statement

Elly has a String S containing uppercase letters from the English alphabet. The girl can either do nothing, or she can take exactly one action: she can change all occurrences of one letter into another letter (e.g., change all 'T's into 'C's). The "score" of the resulting word is defined as the sum of the squared number of occurrences of each letter.

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 String S returns the maximal score after at most one change of letters.

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

  1. "TOPCODERROCKS"

    Returns: 35

    The sample from the problem statement.

  2. "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

    Returns: 28

    This time S contains each letter of the English alphabet exactly once. Elly should change any letter into any other letter.

  3. "AWOIDUIWAHCSZNGAIOWIAWEWIUYTIUEAXKLMFCAWMAWVAWUBVA"

    Returns: 374

    Random keystrokes on the keyboard.

  4. "ROVERWANDERERNOMADVAGABOND"

    Returns: 108

  5. "WITHOUTITIMJUSTESPR"

    Returns: 65

  6. "X"

    Returns: 1

  7. "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

    Returns: 2500

  8. "XY"

    Returns: 4

  9. "XYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXYXY"

    Returns: 2500

  10. "ABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXY"

    Returns: 108

  11. "ABCDEFGHIJKLMNOPQRSTUVWXYZAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: 700

  12. "ITISNTWHATYOUSAYITSWHATYOUDO"

    Returns: 114

  13. "ITSJUSTABESTUNDERYOURBEDINYOURCLOSETINYOURHEAD"

    Returns: 212

  14. "ANDYOURUNANDYOURUNANDYOURUNTOCATCHUPWITHTHESUN"

    Returns: 318

  15. "SOHEREIAMSINGINGWHATIJUSTCANTSAY"

    Returns: 118

  16. "EVERTRIEDEVERFAILEDTRYAGAINFAILAGAINFAILBETTER"

    Returns: 338

  17. "NOZAPHODJUSTVERYVERYIMPROBABLE"

    Returns: 76

  18. "TOIUMRQLMA"

    Returns: 16

  19. "TOPCODERINDIAREGIONAL"

    Returns: 61

  20. "FROMALLTHETHINGSIVELOSTMYMINDIMISSTHEMOST"

    Returns: 197

  21. "CARPEDIEM"

    Returns: 15

  22. "OIHUPJPMPJBCKPGLKZIPNTXOYYNIPIVPMIH"

    Returns: 181

  23. "JVKWGVKLYBKNSAZUWEEMHAKBRAIEEMIBRJSHHVMPMEGM"

    Returns: 182

  24. "HSIDWPOPPKCXZUAJGAJHSVWQ"

    Returns: 52

  25. "KPBQWLEGAIFYMMJDZJDJVY"

    Returns: 46

  26. "XKKIWZQYARSWCUJGJOVTPOVOIHVLXLZZJGCM"

    Returns: 92

  27. "DNYLYYEALTUVZJMYOTAYEIVFIMXKELFX"

    Returns: 108

  28. "XQTKZMHAPJGOGHKO"

    Returns: 32

  29. "WDOVPLXVCGYQAWRGW"

    Returns: 39

  30. "GRIIQPOOMQARCITFHSSXOH"

    Returns: 60

  31. "IPUFOATAXJSRDEDCDLK"

    Returns: 39

  32. "IIIGRMBYZYJGGKPKEYZILHWQPLVXHVDRYGLAR"

    Returns: 127

  33. "OSSCPTJNCMUC"

    Returns: 32

  34. "WCYXJT"

    Returns: 8

  35. "KZSVVQCXFKPYMIBFRNHUJJVF"

    Returns: 58

  36. "PJNO"

    Returns: 6

  37. "UQJGEBDTNRMLOZPIERFWIGQLIHSWPOYCN"

    Returns: 69

  38. "AXJSIGOPDZTEDRYHXTILPQPFGHUQQLWHXJPKXJLKUNZ"

    Returns: 137

  39. "ALYGUUNNNYQUQJTUVOWDRAQVWCPQPDYGSFQ"

    Returns: 131

  40. "ETXBVEVBVEAEWKADNITDUTWJHFTCKEVORJVWPJFOL"

    Returns: 167

  41. "JWXDESVKOZGEXLNQ"

    Returns: 28

  42. "HKDFLL"

    Returns: 12

  43. "Q"

    Returns: 1

  44. "FJIOLLWDGYLKMZZRSIBNOFUSVSJ"

    Returns: 67

  45. "CGXLUZLIXOEBZXFJLOMXID"

    Returns: 70

  46. "MIQSZTLMYLDZBKPDYNRRLBXHDYHIMNKSF"

    Returns: 91

  47. "WZOZZRSLTLSJPZIYDLKXWEUUIPYAOLCCK"

    Returns: 107

  48. "ZAXSHSSGVVJVPDPLLYIRZUTRWWDO"

    Returns: 70

  49. "NXZYTO"

    Returns: 8

  50. "OQTHZPMO"

    Returns: 14

  51. "LTEYJNUINOEMVKBYEFXKTAOOSKRMRMV"

    Returns: 83

  52. "WUNIJJAFP"

    Returns: 15

  53. "HEQGNPYCQERCDKHPQTXHCCKGMNYDEKEXXNLLDQO"

    Returns: 145

  54. "QKKZXTKSXGVLSUPTUSGYYHKGEGFAQBOPMIZMRKXEWDVYQ"

    Returns: 155

  55. "CDKGEPXYXMP"

    Returns: 23

  56. "IOOZTSOKUROXZNBLEQZEA"

    Returns: 65

  57. "ROHFAAFTDASNEX"

    Returns: 34

  58. "AJMZAIXOMRTZOKEUHPGQEFJBLYXFZDDYKWGYMHLSAPVRCXPGMQ"

    Returns: 142

  59. "OBQPKYHMKPLZHNXOMTPSTCGBBITGRWNFCPMLCUPVXVRAFAOE"

    Returns: 148

  60. "FXIYCNIFOCU"

    Returns: 25

  61. "CTELSJKETHSSDQJOVZDCMVFSNBNBLN"

    Returns: 88

  62. "ECAADBGADEDBACICDEABACGBCAG"

    Returns: 195

  63. "FGABCFAABABEAABAOBBACKAFHAKDABBIAGHJAA"

    Returns: 514

  64. "BAPBQABALADAIACACBB"

    Returns: 153

  65. "DHAABNDETABAABEFH"

    Returns: 79

  66. "GGBFACCDDAABFEGABEAFEJAKCIAFABABCFFDGEHLCABBG"

    Returns: 405

  67. "ABAAAA"

    Returns: 36

  68. "AEACKCBEDEHBABAAFCBABABFEAAACBFEFGAFAAAHCMD"

    Returns: 527

  69. "E"

    Returns: 1

  70. "HPAAACFACAKBAIBADAFAAB"

    Returns: 182

  71. "AAADHADAIDAAEMDBBACMDAGDBAAEGAAACBEEBBACAAAB"

    Returns: 696

  72. "BDCBIFBIABDCAAABADAAAACSCAAABAAA"

    Returns: 472

  73. "EFFAABACHAEACQ"

    Returns: 60

  74. "CCANIEEL"

    Returns: 20

  75. "BC"

    Returns: 4

  76. "DABBAEBFEBABBGBBAAABGQGBCABBGFDAABOIGDAEAGAB"

    Returns: 738

  77. "FDDACBFAMAADAEB"

    Returns: 75

  78. "AKBCAEDJBASDECADBBEGAAHHAFSAAEBE"

    Returns: 246

  79. "BDECCKABBABDBBAMACABAEABPAAAEAGDAA"

    Returns: 472

  80. "ABBDBABLEDBCCAIGJAFGABABAG"

    Returns: 218

  81. "CCAAAACFEAIDABCAHACBACGNAAABHEGADABAFFADDADCAIAA"

    Returns: 796

  82. "IEECBAUAACUBBCHAIACDLBH"

    Returns: 115

  83. "LFCBBFKFKFCAAAMADEJDABIHABDBBBGCKCABAADBA"

    Returns: 425

  84. "BFAHGAAABPFABBFABBBHBBBCEBAADBDABABA"

    Returns: 646

  85. "ABFIHAMBADAGBEEAJEIEACCICAAACAA"

    Returns: 265

  86. "AECADHCBAOMNAABBADOBECHAAACCGEBBAOABCAEDAAMIA"

    Returns: 565

  87. "BBDBAAACAEGAAJAAAEJB"

    Returns: 180

  88. "DDEBBFAFABAICDEJEDBECCIBAAADAGDABAAAFB"

    Returns: 400

  89. "ALGBCEFCAAEHDBBAEBCBIATIA"

    Returns: 149

  90. "DBEHEAECCAH"

    Returns: 35

  91. "BBCJECKDFMBANACABKAADACAAMALKDAAB"

    Returns: 299

  92. "RAJAGGEBAAAMDAABCACJBCADBBBAJCBAC"

    Returns: 369

  93. "AMBBDGAAFCAAGACEAECAAEDKBBAAAECAAADDAAA"

    Returns: 539

  94. "ABAEBBCCCBBAFFADFACDDGAEBBABCMDAF"

    Returns: 319

  95. "HAAGCDAAAQAAAABFFBKAEBBCACAABADABMACHABDGAALWJHEA"

    Returns: 781

  96. "F"

    Returns: 1

  97. "BAAFEJACBAFBA"

    Returns: 71

  98. "CABBCGABCABAJCAALCACQAIADAACFCDKEDCEABACBHO"

    Returns: 587

  99. "AGADD"

    Returns: 17

  100. "AEADBADAABBBDBFBA"

    Returns: 155

  101. "AAEHAACAABEEAADAKVMACAFIGAAKJBBCG"

    Returns: 289

  102. "AAAAAAA"

    Returns: 49

  103. "A"

    Returns: 1

  104. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    Returns: 2500

  105. "AABBCC"

    Returns: 20

  106. "AAAAA"

    Returns: 25

  107. "AAABBBC"

    Returns: 37

  108. "AABB"

    Returns: 16

  109. "AAA"

    Returns: 9

  110. "AABBC"

    Returns: 17

  111. "AAAAAA"

    Returns: 36


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: