Statistics

Problem Statement for "GooseTattarrattatDiv1"

Problem Statement

Goose Tattarrattat has a String S of lowercase letters. Tattarrattat wants to change her string into a palindrome: a string that reads the same forwards and backwards. (For example, "racecar" is a palindrome.)


She will do this in a series of steps. In each step, Tattarrattat will choose two letters of the alphabet: X and Y. She will then change each X in her string into a Y. Changing each single character takes 1 second.


For example, if S="goose" and Tattarrattat chooses X='o' and Y='e' in the next step, the step will take 2 seconds (because there are two 'o's in S) and after the step she would have S="geese".


You are given the String S. Return the smallest number of seconds in which Tattarrattat can change S into a palindrome.

Definition

Class:
GooseTattarrattatDiv1
Method:
getmin
Parameters:
String
Returns:
int
Method signature:
int getmin(String S)
(be sure your method is public)

Notes

  • Tattarrattat must always change all occurrences of the chosen letter into the other one; she is not allowed to change only some of the occurrences.

Constraints

  • S will contain between 1 and 50 characters, inclusive.
  • Each character in S will be a lowercase letter ('a'-'z').

Examples

  1. "geese"

    Returns: 2

    There are many ways how Tattarrattat can change this S into a palindrome. For example, she could do it in two steps as follows: Change all 'g's to 'e's: this takes 1 second and produces the string "eeese". Change all 'e's to 's's: this takes 4 seconds and produces the string "sssss". This way took her 1+4 = 5 seconds. However, there are faster ways. The best one only takes 2 seconds. For example, she can first change all 'g's to 'e's (1 second), and then change all 's's to 'e's (1 second), obtaining the palindrome "eeeee".

  2. "tattarrattat"

    Returns: 0

    This string is already a palindrome so no changes are needed.

  3. "xyyzzzxxx"

    Returns: 2

  4. "dogeeseseegod"

    Returns: 0

  5. "palindrome"

    Returns: 5

  6. "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcb"

    Returns: 48

  7. "aaabbbcxyyopqrorrqoxyxcbaaddd"

    Returns: 13

  8. "e"

    Returns: 0

  9. "ve"

    Returns: 1

  10. "nxj"

    Returns: 1

  11. "onwg"

    Returns: 2

  12. "jdwwl"

    Returns: 2

  13. "smsozy"

    Returns: 3

  14. "bjgymyq"

    Returns: 3

  15. "actznkbr"

    Returns: 4

  16. "ccqovzihl"

    Returns: 4

  17. "glecqmnffv"

    Returns: 5

  18. "kopnxmgtoec"

    Returns: 5

  19. "fcbfphevqxzo"

    Returns: 6

  20. "ikvzriypjijjl"

    Returns: 6

  21. "ufgqmebfdhtjsp"

    Returns: 7

  22. "bzhlhizfzdvxlmw"

    Returns: 7

  23. "tpqmmgezyfbplfpi"

    Returns: 8

  24. "kgjykqrenxmgvwfge"

    Returns: 8

  25. "clqnblvnxhbiprzcrd"

    Returns: 12

  26. "mgscdkdqviibwzqncon"

    Returns: 11

  27. "gwyfavhghvflggjsnzoz"

    Returns: 12

  28. "trairhswhnrrbinzulyst"

    Returns: 10

  29. "zekgxycoeiarkvytuazofh"

    Returns: 13

  30. "iyaijhiunfasnlbdtqepgbs"

    Returns: 14

  31. "nabrsskjymoigfycqgwceswf"

    Returns: 15

  32. "bethgemtepnknzovzvfyrpesq"

    Returns: 16

  33. "mmtuyooeiwrvepyntnhruwumou"

    Returns: 20

  34. "mdwfonfrarzwvhcsookkrmylbts"

    Returns: 19

  35. "lbwbihuvzeislszjtigzmjvwdwkw"

    Returns: 16

  36. "zxgawyhsqelcattbaokunmgknlsta"

    Returns: 16

  37. "vnsmrirkhqrkjgqjmiswsdjzqywbpd"

    Returns: 21

  38. "oxfqqlfdtwbxmxnmqboqjonxmowvzvx"

    Returns: 26

  39. "jibmizhufhpcdwzogczhhzwgptrzljud"

    Returns: 24

  40. "gqujiykoeqdypqctuhhwtmobtxkrmgtwe"

    Returns: 20

  41. "iiywojzdymowmfmvwkpdcvdrcmbgowrueu"

    Returns: 29

  42. "ejhonyduovxvwnisznznmedjzzrqgaqqbiu"

    Returns: 23

  43. "kecawgtxfuwmbgelpdjwrewqnxkztbbhyjnp"

    Returns: 24

  44. "xebehwtklyprdqsroqxcvmpmnqkeblarooshd"

    Returns: 26

  45. "tlhkxiihsildsolrifgtpnyyfbcyhgytsgibdx"

    Returns: 31

  46. "gyamaduuvevmzgclbufazgkoiutlzsdsgocxlyk"

    Returns: 30

  47. "vfwgbyozohyxupjjsmufcbsbtgrklmtknwjfsrtu"

    Returns: 35

  48. "fjmkxxtapezfdzduwxseomnfiuobhljfpquyuvblk"

    Returns: 30

  49. "sdwyzxeewvxytrgdhnpygjzgpgfsyorciqjnoromdu"

    Returns: 28

  50. "oqcwaiywhovohaqjjatylvndjvxplyuawoyekcmkrjw"

    Returns: 33

  51. "xbevabhcyfwtybuaxfqluvnrnprzohfnhsacyzyxftdr"

    Returns: 38

  52. "zxgqxaznqojjlwxafkgxzuzlcgrlhxhxrnfxhiigyzvgt"

    Returns: 38

  53. "brzvjmxsarukftzpbynsdbzcimvijwvzfbahlpmlzasves"

    Returns: 38

  54. "efgteztyxlxdfmufenlhoqvfklnzrcktiqkipfgtrfuirsi"

    Returns: 39

  55. "vdnwkrhxzuztlcnsmzpoltjpsztqmqhwfjoohlczsbeaqwmq"

    Returns: 41

  56. "ffllmxowxvwvtdjtdaeclrunyodthzxphfptccmgsspzhseoa"

    Returns: 44

  57. "esvinzhzrodrhkzfuorlwtxwbxwefuhklyhvzyiqaycfuuqhja"

    Returns: 44

  58. "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

    Returns: 0

  59. "ffggfggffgggggggffgffggggffggffgffggggfgffgfgfggf"

    Returns: 21

  60. "pfdpzvhamtrmwxlxpxgwuiqcspmqzsedcsummwivduanvmnqjl"

    Returns: 32

  61. "ueubyfvnialatabyxptbhvabtpwtvkbatxdottpmtjgcwcjkex"

    Returns: 27

  62. "envfbrqbvvcynhhnvvfkkavvgcevakuzevqkudogmebcybkvjv"

    Returns: 23

  63. "szivqlcbqvhbvdraqrindmbnrnumzitmzavqvchvylguzeado"

    Returns: 30

  64. "qgofmmuosoksikxrnhghqbkjkospcxghgjuciknvpjoryzwigq"

    Returns: 29

  65. "auinlrymrchsntpqcppfwrsnwuwpvgrxodrynillrmkpcusua"

    Returns: 25

  66. "imdfoyudyhkckrvduillnuoeiyeounlliudbqlmkhyruifzscy"

    Returns: 18

  67. "xrepayuyubctwtykrauccnquqfuqvccuaakylwlcjuyhyammag"

    Returns: 11

  68. "ozppevgxnmiedpmcvayhiwwlevhwbwgascepdmbmnqrlmpjko"

    Returns: 16

  69. "pxcjmksjarnxnmwdkomndkukmmkwkxnmokeumnenqdjskmwfxp"

    Returns: 13

  70. "tmjgnvgeyhgkiwmeextjgkafdyakgptxeejzilgoyegvwgpjt"

    Returns: 9

  71. "xpegbfbspqpztvbfmkrsrpkbppbkpqwrkmfbjuzpqpsbfbgcps"

    Returns: 8

  72. "rgrodfsgcqbeysgcxeetcwunggnuwzneexcgslebuzgsfiorgr"

    Returns: 6

  73. "zcvaavomgutkxegjnvidkvvrcrvvjdxvnkgexktugmovaavrb"

    Returns: 6

  74. "eclkjqypfgtfindsftmhdlkwumkldhwtfocnqftgfjyqjkldb"

    Returns: 8

  75. "hdynujaalhqtecaemwmsslsdccdslssmwmdacdtlhqvajunaeh"

    Returns: 7

  76. "sepggadcsdpfsmdpwhbodscfeexcsdabhwpdusxpdsldatgpes"

    Returns: 6

  77. "prwpmyprfutdqtnhqbmadwasaasawdambqhntqxtmfrpympwrp"

    Returns: 2

  78. "legzuvvdyjsjkzqksnpndsbapabsdnpnsxqzkjsjydvvuzgel"

    Returns: 1

  79. "xjkmtjwvrpkutmpcutkzaphsjjohpaaktucpmtrkpuvwjtmkjx"

    Returns: 4

  80. "abaabb"

    Returns: 3

  81. "abbbbbbbbbbbbccccc"

    Returns: 6

  82. "aaaeeeeeeeeeebb"

    Returns: 5

  83. "abccacb"

    Returns: 4

  84. "blwejugosajrblrdlwdmxeoreoveoxhotcnqdltgptcnranxfm"

    Returns: 41

  85. "aaaaabbbbccccedddddeeeeeeeeeeefffggghhhh"

    Returns: 28

  86. "abcdaeeeeeeeeeeeeaaab"

    Returns: 9

  87. "aaccccbbb"

    Returns: 5

  88. "aabccccb"

    Returns: 4

  89. "abbbbcc"

    Returns: 3

  90. "gaaaaaaaaabb"

    Returns: 3

  91. "abyzyz"

    Returns: 4

  92. "aayyyyyz"

    Returns: 3

  93. "baccca"

    Returns: 3

  94. "abbbcc"

    Returns: 3

  95. "caaaaabb"

    Returns: 3

  96. "baaaakkk"

    Returns: 4

  97. "aacccbccb"

    Returns: 4

  98. "tkweazqgmplohyxrutojvbzllqgjaidbtqibygdzcxkujvwghw"

    Returns: 43

  99. "abccccccccccb"

    Returns: 3

  100. "slkjfdaqefsakjdfh"

    Returns: 11

  101. "ccccaaaaacbbab"

    Returns: 8

  102. "abcccccb"

    Returns: 3

  103. "aaaabbbbbbbccccc"

    Returns: 9

  104. "aacccb"

    Returns: 3

  105. "aabcccccb"

    Returns: 4

  106. "ccccaabdccbcccc"

    Returns: 4

  107. "aaacccccbddb"

    Returns: 7

  108. "abcabcabc"

    Returns: 3

  109. "accccbb"

    Returns: 3

  110. "tsvhsvohygungszjrziksodnurcfxngammyaopbvjijqanberc"

    Returns: 45

  111. "abcdaeeeeefgfeggfeeeeeeaaab"

    Returns: 12

  112. "abcdeghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihfedcb"

    Returns: 48

  113. "aaeeeeeb"

    Returns: 3

  114. "wlrbbmqbhcdarzowkkyhiddqscdxrjmowf"

    Returns: 24

  115. "zaazbbbbbaaa"

    Returns: 7

  116. "abcddedcb"

    Returns: 6

  117. "aabbcccddddeeeefffffffffgggddddggggg"

    Returns: 27

  118. "acccccbb"

    Returns: 3

  119. "aabbbcccbbbbc"

    Returns: 6

  120. "acccbb"

    Returns: 3

  121. "acaaaccccb"

    Returns: 5

  122. "acccab"

    Returns: 3

  123. "yyaaaaaaaaaaaz"

    Returns: 3

  124. "heebdbbacdhfhahaecgeffhch"

    Returns: 19

  125. "dbaddbbdcaabbadaaeaeceeeeeedbbdeddebbabbcccecdbcec"

    Returns: 38

  126. "abcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbay"

    Returns: 48

  127. "aaabbbcccdefgcccbbbaaa"

    Returns: 2

  128. "caaabcbaac"

    Returns: 5

  129. "aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbb"

    Returns: 25

  130. "aaaccbdddbbb"

    Returns: 8

  131. "aeaeeeeebb"

    Returns: 4

  132. "baaaaacc"

    Returns: 3

  133. "zzuhvrkprsipcjbjvvxjvgvvfcgsjnwlpqfestwcapnbdmzz"

    Returns: 33

  134. "aaaaacccccccabbb"

    Returns: 9

  135. "aaabebcd"

    Returns: 5

  136. "abbbbbcc"

    Returns: 3

  137. "aadefgbbbc"

    Returns: 6

  138. "deegabddgeebgehgcadgdfaheefdfcdccgafbgfehcaaehdccf"

    Returns: 41

  139. "ababababbbabababbbababbbbababbba"

    Returns: 12

  140. "abbcccccb"

    Returns: 4

  141. "asbdshjhjidsdsghavabsdc"

    Returns: 15

  142. "gseees"

    Returns: 3

  143. "ababbbbbbacc"

    Returns: 5

  144. "aabbcb"

    Returns: 3

  145. "qwertyuioplkjhgfdsazxcvbnmlkjhgfrtyewqaindhsjausid"

    Returns: 39

  146. "abbbcddac"

    Returns: 6

  147. "aabccb"

    Returns: 4

  148. "accccccccbb"

    Returns: 3

  149. "aabbbbc"

    Returns: 3

  150. "acddddc"

    Returns: 3

  151. "qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvb"

    Returns: 25

  152. "accccccab"

    Returns: 3

  153. "aaccccb"

    Returns: 3

  154. "xxxyyrzzzzzzzzzttttzy"

    Returns: 11

  155. "aaccddcb"

    Returns: 5

  156. "adfglkregccnquqfuqvccuaakylwlcjuyhyammag"

    Returns: 29

  157. "accceeeeeddddbb"

    Returns: 10

  158. "dddbabdbbddd"

    Returns: 5

  159. "aaaaaacbbbbcdefgh"

    Returns: 11

  160. "aabccccccccbcb"

    Returns: 5

  161. "lwqsokphdwuuoeamwkswxhjvojnmtifggvzuhodllxhzb"

    Returns: 40

  162. "abacccccccbb"

    Returns: 5

  163. "nwlrbbmqbhcdarzowkkyhiddqscdxrjmowfrxsjybldbefsarc"

    Returns: 45

  164. "aaaaffffffffffffffffffffbbbbbcccccdddddeeeeebcde"

    Returns: 28

  165. "adbcbccb"

    Returns: 5

  166. "aaaccccbb"

    Returns: 5

  167. "aaaeeeeeffffbbbb"

    Returns: 11

  168. "aaaaabbbbbabccbbbbbaaaaa"

    Returns: 13

  169. "sssscccbbbabba"

    Returns: 9

  170. "bbbaaaacc"

    Returns: 5

  171. "aaccccccccccccccccccccccccccccccccccccccccbcb"

    Returns: 4

  172. "slkjfdaqefsakjdfhsdjfskdfskdjfhsk"

    Returns: 27

  173. "abbbcac"

    Returns: 4

  174. "acccedbb"

    Returns: 5

  175. "accccbbcccbb"

    Returns: 5

  176. "cccaabcccc"

    Returns: 3

  177. "ccbbbba"

    Returns: 3

  178. "abcbac"

    Returns: 4

  179. "kkkkkaaaakkkkkk"

    Returns: 4

  180. "aabccccxxxxxxxxxxxxxxxxccccbcb"

    Returns: 5

  181. "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"

    Returns: 25

  182. "abcdefghijklmnopqrstuvwxyzabcdefghiklmnopqrstuvwz"

    Returns: 42

  183. "abbbbbabbbbbb"

    Returns: 2

  184. "vmgxepcrtmjsrevoxipeqwzeqzvbcefwdrpybwnfmrdzboucyj"

    Returns: 44

  185. "acbccb"

    Returns: 3

  186. "abeeeeb"

    Returns: 3

  187. "agggggggff"

    Returns: 3

  188. "rahjmyuwwkrxnfmqgeebeoapezsdzspmqcxjtgdyxkrpvmwmmp"

    Returns: 41

  189. "aabbbbbbc"

    Returns: 3


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: