Statistics

Problem Statement for "RoughStrings"

Problem Statement

Given a string s, its roughness is calculated as follows: Let c1 be the letter that appears most frequently in s, and let c2 be the letter that appears least frequently (c2 must appear at least once). The roughness of s is the number of occurrences of c1 minus the number of occurrences of c2.

You are allowed to modify s by erasing between 0 and n characters, inclusive (see example 1 for clarification). Return the minimum possible roughness that can be achieved by such a modification.

Definition

Class:
RoughStrings
Method:
minRoughness
Parameters:
String, int
Returns:
int
Method signature:
int minRoughness(String s, int n)
(be sure your method is public)

Constraints

  • s will contain between 1 and 50 characters, inclusive.
  • s will contain only lowercase letters ('a'-'z').
  • n will be between 0 and m-1, inclusive, where m is the number of characters in s.

Examples

  1. "aaaaabbc"

    1

    Returns: 3

    We may remove one 'a' or one 'c' to obtain the minimal roughness of 3.

  2. "aaaabbbbc"

    5

    Returns: 0

    One of the ways is to remove 'c' and all occurrences of 'a'.

  3. "veryeviltestcase"

    1

    Returns: 2

  4. "gggggggooooooodddddddllllllluuuuuuuccckkk"

    5

    Returns: 3

  5. "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"

    17

    Returns: 0

  6. "bbbccca"

    2

    Returns: 0

    Sometimes you may want to remove less than n characters.

  7. "abcdeefzzzzzzzzzzzzzzzz"

    6

    Returns: 9

  8. "vvnavgnaaagvanavvvvvvvvavavaavvvavvavvavvvgvav"

    0

    Returns: 23

  9. "jjtvjjjjjjjvjjvjjjvvjjkjvvvvvjj"

    5

    Returns: 6

  10. "mhmtbtbttttshthstttbmhttbht"

    5

    Returns: 6

  11. "ffffffffffffffrrffffwfffffffffcff"

    5

    Returns: 0

  12. "wwwuwuwwwwwwwuwwwuwuwwwwwywwuuuwuugwgwwwwwwwwugwrw"

    3

    Returns: 30

  13. "ddandjgjdjddjdddjjdajdddddd"

    5

    Returns: 8

  14. "kwccibibkbbckcckk"

    1

    Returns: 3

  15. "tewe"

    2

    Returns: 0

  16. "ehhhhjmememhhhhemehehehhhhememmhhh"

    5

    Returns: 6

  17. "amaakaakkkakamaakaaaamaakk"

    10

    Returns: 0

  18. "aaaaaaaaaaaaama"

    3

    Returns: 0

  19. "zboozzvbbj"

    7

    Returns: 0

  20. "ezzeazzzzzzazzazazzzzzzezzzzzazzzevzazze"

    10

    Returns: 14

  21. "oooododofddododdddddddddoodfoodddoddddd"

    10

    Returns: 3

  22. "ffffbffffffdbffffffbdfffffffkf"

    10

    Returns: 0

  23. "vooooovv"

    5

    Returns: 0

  24. "zzzzqz"

    3

    Returns: 0

  25. "xxixisxigxxsss"

    1

    Returns: 3

  26. "xzkvvkkkkkkbcxkkk"

    4

    Returns: 5

  27. "oiidoooodooiakiooopddoiidaooiddppiopdddoodd"

    7

    Returns: 8

  28. "vpvvvvvvvkvvvvvvvvppvvvppvkkvbvvkvpvvvvvv"

    15

    Returns: 0

  29. "jjjjjjjjjjvojsjjjjojjjjjjjjjjjsjjjvjjjjjjjjjjjvjj"

    15

    Returns: 0

  30. "ztvhhhgzhhhvvvlzhvvzrvzvhhv"

    8

    Returns: 2

  31. "vveevwweev"

    4

    Returns: 0

  32. "xaxwxxaxxxaxwawkxaxakxxxwxxxaaxwxxxaxwaxxxkaxwx"

    6

    Returns: 16

  33. "wowwowwwwwwkwwwwwkwiwwwvkwwwwwwwwwkwywwwwvwwkwwwww"

    15

    Returns: 0

  34. "ymmmmmmmyhmmymmhmm"

    8

    Returns: 0

  35. "xtxxxxttxtxxxxxxtxxxttxttttxt"

    12

    Returns: 0

  36. "sbhhfbsbbhfbhsbhbbfhbbhhh"

    20

    Returns: 0

  37. "hhhhhhhnnhhhhhhhhhnnhhhhhhhhhhhhhhhhhhhhhhhhn"

    20

    Returns: 0

  38. "eeeeeeeeeeeeezeeeeee"

    18

    Returns: 0

  39. "kkkkkbtktkbkkkt"

    10

    Returns: 0

  40. "klkkkllklqlkllllkkklkklklkkklllkkkkllkk"

    20

    Returns: 0

  41. "sssessoooososssoos"

    14

    Returns: 0

  42. "iikiiiawiiaaaaaatarttriiiaairaiaii"

    20

    Returns: 0

  43. "kasuukqaqaukauauuaaqaaka"

    14

    Returns: 0

  44. "fffffffffffffffffffffsffffsf"

    15

    Returns: 0

  45. "dddddddddddddddd"

    7

    Returns: 0

  46. "ggughghggggggggguhcggggggghgggggugghugghggg"

    16

    Returns: 0

  47. "x"

    0

    Returns: 0

  48. "jjujuujgjjjjjjjjuujuujjg"

    19

    Returns: 0

  49. "ppppuuddduppppuudppppdppuupppupduuuuu"

    3

    Returns: 9

  50. "nmrnwjnnnnnmmnnmn"

    4

    Returns: 5

  51. "oooooooooooooooooooooooobooooooo"

    4

    Returns: 0

  52. "kudddddkuhdhuuddduhkhuhdudddddhhdkd"

    19

    Returns: 0

  53. "eeexeeeqexeeeeeexeeeeeeqeeeeeleexexeexl"

    25

    Returns: 0

  54. "mmhhjmhhmhhjmmhmmmmhjmmjhhhmmhmhhhmmhmemjhmmmmmmm"

    4

    Returns: 18

  55. "fuuuufufuuuuuhuufff"

    12

    Returns: 0

  56. "rrrmmrrmrmrmmkmmgmmmkrmmmgrmmrmrmrmrm"

    7

    Returns: 4

  57. "ytyyyyybbyybsyyysyyyycyysbyyybyyyyy"

    29

    Returns: 0

  58. "uumvvevu"

    5

    Returns: 0

  59. "krkrkkukkkururkruirutrukukukkuukukurukrum"

    18

    Returns: 0

  60. "rewewwtewwewewenwrawewewtnwwee"

    23

    Returns: 0

  61. "xxrcxfxkkxxxxxxxxfxx"

    12

    Returns: 0

  62. "wfwfzfffffwffzwf"

    6

    Returns: 0

  63. "ppgpiggpgppppppipsppppppppsgpgpgsppisppisgppgppp"

    2

    Returns: 24

  64. "nskfknkffk"

    6

    Returns: 0

  65. "wwwwwwwwwwwwrww"

    1

    Returns: 0

  66. "bcbbcnbbbbcbcnbbbbbbbbcbbnccnbbbnbbcbbccbb"

    30

    Returns: 0

  67. "ssqqslssouslsslssfssqolsssss"

    6

    Returns: 10

  68. "ttccctbctsctccctcccccttccbccctcacccc"

    10

    Returns: 8

  69. "nn"

    1

    Returns: 0

  70. "gqgqqggpgggqgbgggqxggggggqqggpggxgbqqgbggg"

    7

    Returns: 17

  71. "affffffffffffffffffffnfsffffffffffffffafffffff"

    18

    Returns: 0

  72. "qjdjddjjjcdjdjddcjdddjdjjjdddjjejjjddjjdd"

    5

    Returns: 0

  73. "iiiiiidiiiiiiikiiiiaii"

    21

    Returns: 0

  74. "ioooooboobioioiiobbooo"

    5

    Returns: 4

  75. "qqqqqqqqqqqqqqqqqq"

    16

    Returns: 0

  76. "ijiijjjiiijijiiijijijiijijcijijiijjiijjijiiiii"

    26

    Returns: 0

  77. "epeeeee"

    4

    Returns: 0

  78. "cnnrynnnxcxnxrryvyyynnnrvxyvcxnynnbyn"

    26

    Returns: 0

  79. "hhhhbhbhhhhvbhhhhhbhhhhhhhhhhhhhhhhhhh"

    3

    Returns: 27

  80. "pppppkpeppperrpphppeppepppphpprppppppppppep"

    38

    Returns: 0

  81. "xggggtg"

    5

    Returns: 0

  82. "oooooodoooooooooooooooodoooooooooooooooodzoo"

    16

    Returns: 0

  83. "ckhihccvhhheikhichkicheihhvxkhi"

    28

    Returns: 0

  84. "azztzzzzzz"

    6

    Returns: 0

  85. "sssxrsssrssrrrsrsrrrsrrssssxsssr"

    23

    Returns: 0

  86. "jivwjvvj"

    3

    Returns: 0

  87. "jqtotootttttoxttttjootjtttotoo"

    5

    Returns: 7

  88. "brbxxlblsrxbmmx"

    2

    Returns: 2

  89. "mbmmekmmmmsmmmmmzmkmmzkmmkmmzkmmm"

    22

    Returns: 0

  90. "gnseqyedjtvkgrzoqcgnjufxbmtths"

    1

    Returns: 2

  91. "mdyjfrwcwrhstqpwuygrtwoowubdnjgal"

    28

    Returns: 0

  92. "pmicwbkicrogyoaifrybewtapsuwuhmejnj"

    9

    Returns: 0

  93. "pamkxmjqamrnmiyqijozbvxlpceta"

    23

    Returns: 0

  94. "bxfcbkxzvjqoxqvpdodpikavompygkpvbfojnttjvosts"

    35

    Returns: 0

  95. "mccmgphlzvvgrtzjvxzewvoipobmyynkhwpeyxakw"

    14

    Returns: 1

  96. "zaponsjkowvyiiezezrhsyqfpdeehmygwklxtdeurwphbsf"

    7

    Returns: 2

  97. "eewhhngydvquolkkezgkfxrtbkqwuzeiklqlvdhqisoee"

    38

    Returns: 0

  98. "cuewzkalxjjsuuanodfmzrphatavgnseqyedjtvkgrzoqcgnju"

    7

    Returns: 2

  99. "rogyoaifrybewtapsuwuhmejnjoipamkxmjqamrnmiyqijozbv"

    17

    Returns: 1

  100. "pcetaezvoghkhqjdfodfllxgeyfbdksxytovxrcazqrxucnxgi"

    6

    Returns: 2

  101. "liciqbxfcbkxzvjqoxqvpdodpikavompygkpvbfojnttjvosts"

    49

    Returns: 0

  102. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz"

    0

    Returns: 48

  103. "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzabcdefgujikola"

    14

    Returns: 0

  104. "qqwweerrttyyuuiiooppllkkjjhhggffddssaazzxxccvvbbnn"

    49

    Returns: 0

  105. "bccdddeeeefffffgggggghhhhhhhiiiiiiiijjjjjjjjj"

    43

    Returns: 0

  106. "aaaaaabbbbbbbbccccccccdddddeeeeefgggggghhhhhhhhh"

    45

    Returns: 0

  107. "aaaabbbbcc"

    2

    Returns: 0

  108. "aabbcccddddeeeeffffffff"

    4

    Returns: 2

  109. "abbcabvabbvcabvbabdfabdhgbsd"

    16

    Returns: 0

  110. "asdsadasdaaaaaaaaaaaaaaaaaaaaaa"

    2

    Returns: 20

  111. "aaaaaabbbbbbcc"

    3

    Returns: 0

  112. "zzzzzaaaaabbbbbbcccccccddddddddeeeeeeeeeffffffffff"

    20

    Returns: 0

  113. "abcdefghijklmnopqrstuvwxxxssdeefdsssdfds"

    29

    Returns: 0

  114. "aksdjfhaieuhaklsjefiuasdasdgfsdglfkjehfuiashlefiuh"

    49

    Returns: 0

  115. "aaaaaabbbbbcccccddeeffgghhiijj"

    7

    Returns: 1

  116. "asdaiuiuiouiiiiiididdididiididiiiiaaaakkksadsaddd"

    40

    Returns: 0

  117. "aaaaaaabbbbbcccdd"

    6

    Returns: 1

  118. "abcdzxmndjkjnlksndklsndlkjnsjdnsjbanban"

    15

    Returns: 0

  119. "aabbc"

    1

    Returns: 0

  120. "aaaaaaaaaabcdefghijkbcdefghijkbcdefghijkllllllllmm"

    49

    Returns: 0

  121. "abcccdddd"

    3

    Returns: 0

  122. "qqweerttyuuioopllkjjhggfddsaazxxcvvbnnm"

    34

    Returns: 0

  123. "aaaabc"

    2

    Returns: 0

  124. "abcccccdddddd"

    2

    Returns: 1

  125. "gggggggooooooodddddddllllllluuuduuuuccckkk"

    5

    Returns: 4

  126. "aaabbbcccxyz"

    2

    Returns: 2

  127. "aaaaabb"

    2

    Returns: 0

  128. "aaaassssddddee"

    3

    Returns: 0

  129. "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyy"

    20

    Returns: 0

  130. "aabbbcccdddeeefffggg"

    2

    Returns: 0

  131. "abbbccccc"

    2

    Returns: 1

  132. "aaabbcccddd"

    3

    Returns: 0

  133. "aaabbbcccdefgh"

    3

    Returns: 1

  134. "ghhghghgghghghg"

    4

    Returns: 0

  135. "aaabbbbccccc"

    3

    Returns: 0

  136. "cbbbadabdcbcbdcdcccbbcadcbddb"

    5

    Returns: 2

  137. "abcdefghijklmnopqrstuvwxyzabcdefghijklmn"

    39

    Returns: 0

  138. "ababababababababababababababababababababababababab"

    0

    Returns: 0

  139. "cadaeafagahaiajakalamanaoapauaaaabbbbbbbbbbbbbbbbb"

    15

    Returns: 1

  140. "aaaaabbbbbcccccddeeeeeefffggggghhhiiijjjkkkllmmmmm"

    25

    Returns: 0

  141. "aaaaabbbbc"

    1

    Returns: 1

  142. "abcfggddddddddddddeeeeeeeeeeee"

    7

    Returns: 0

  143. "aaaabcbcbcddefe"

    5

    Returns: 0

  144. "aabbbbbcccdddddd"

    3

    Returns: 2

  145. "aaabbbcccdef"

    3

    Returns: 0

  146. "bnwtvvahhxmympwgwke"

    2

    Returns: 1

  147. "gggggggooooooodddddddllllllluuuuuuuccccckkkkk"

    5

    Returns: 1

  148. "asfksd"

    0

    Returns: 1

  149. "aabbbbcccccccc"

    6

    Returns: 0

  150. "knakanenakokenanonekankanak"

    6

    Returns: 0

  151. "aaaaabbbbbbbbbccccccccc"

    4

    Returns: 2

  152. "aaaaaaaaaabbbbbbbbbbccccccccccrrrrrrrrrrttttttt"

    4

    Returns: 2

  153. "aaaaaaaaaab"

    1

    Returns: 0

  154. "jfdjgdhjghdjkhghisdhflsjfjhfreiemvriugdgjdf"

    7

    Returns: 4

  155. "ggggggggkkc"

    3

    Returns: 0

  156. "llkkppsssaaaaaaaaa"

    6

    Returns: 1

  157. "aaabbbbbbcccccc"

    3

    Returns: 0

  158. "abcdeeeeefffffggggg"

    3

    Returns: 3

  159. "abbbccccddddd"

    7

    Returns: 0

  160. "abcdefghzijklmnopqrstuvwxyzaaaddfdegagaffffadfaggg"

    43

    Returns: 0

  161. "abbccddeee"

    4

    Returns: 0

  162. "aaaaaaaabcdefghhhhhhaaaaaaaabcdefghhhhhhjkljklasdf"

    49

    Returns: 0

  163. "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"

    49

    Returns: 0

  164. "aaabbbbcccccdddddd"

    3

    Returns: 1

  165. "aaaaabbbbbcccccdddddaaaaabbbbbcccccdddddaaaaabbbbb"

    49

    Returns: 0

  166. "aaabbbcde"

    3

    Returns: 0

  167. "aaaaaaaaaabbbbbbbbbbqwertyuiopqwezxd"

    10

    Returns: 4

  168. "abcdefghijklmnopqryyyyyyzzzzzz"

    4

    Returns: 3

  169. "aaaccceehkkllnnnppsuxxyyz"

    5

    Returns: 1

  170. "aaaaaaaaaacccccccceeeeeeffffwwggggggggggggoooooooo"

    49

    Returns: 0

  171. "abcdefghijklmnopqrstuvwxyzzzzzzzzzzzzzzzzzzzzzzzzz"

    40

    Returns: 0

  172. "aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyy"

    49

    Returns: 0

  173. "aabbbccc"

    1

    Returns: 1

  174. "dsaoiaehfoihdsljfhsladsaehrdrhasdnsfjkadsnf"

    12

    Returns: 2

  175. "qqwweerrttyyuuiiooppaassddffgghhjkllzzxxccvvbbnnmm"

    49

    Returns: 0

  176. "bbbbccccddeef"

    3

    Returns: 1

  177. "aaaaaaaaaaaaagggbbccddeeff"

    10

    Returns: 1

  178. "aaaaaaaaaa"

    0

    Returns: 0

  179. "abbcccddddeeeeeffffffggggggghhhhhhhhttttttttt"

    40

    Returns: 0

  180. "aaaaaaabbbbbbbccddee"

    8

    Returns: 0

  181. "aaaabbbbbbbccccdddddddzzzzxxxxxxxxxxxxxxxxxx"

    15

    Returns: 2

  182. "aaaaaaaaaabbcc"

    4

    Returns: 0

  183. "aaaaabbbb"

    1

    Returns: 0

  184. "kjhrewqrtascvqghewhjkytewlhuteqhiedcwqsbmnbfvrwerg"

    49

    Returns: 0

  185. "aaaaaaaaaabbbbbbbbbbccccccccccddddddddddefgh"

    4

    Returns: 0

  186. "aaaaabbbbbccccddeeffgghhjj"

    10

    Returns: 0

  187. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    0

    Returns: 0

  188. "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"

    45

    Returns: 0

  189. "aaabbbccccde"

    3

    Returns: 0

  190. "aabbbbccccccdddddddd"

    6

    Returns: 1

  191. "aaaaaaabbbbbbbccccddddeefgh"

    5

    Returns: 3

  192. "abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy"

    49

    Returns: 0

  193. "aaaaaaabbbbbbbbccccccccc"

    3

    Returns: 0

  194. "aaabbbbbbbccccccc"

    3

    Returns: 0

  195. "aaaabbbaaccchhhhhfjkddddffjgjtttyrueqiijj"

    20

    Returns: 0

  196. "aaaaaaabbbbbbcd"

    2

    Returns: 1

  197. "aaaaaaaaaaaaaaaaaaaaaaaaabcdefghijklmnopqrstuvwxyz"

    49

    Returns: 0

  198. "aaaaaaaabc"

    2

    Returns: 0

  199. "abbbbbbbbbbccccccccccccccccccc"

    2

    Returns: 8

  200. "qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjkltyrfb"

    49

    Returns: 0

  201. "aaaabbbbbbbbbbbccccccccccc"

    3

    Returns: 6

  202. "aaaaaaaaaaaaaaaaaaaaaaaaannnnnnnnnnnnnnnnnnnnnnnnn"

    49

    Returns: 0

  203. "aabbccddeeyyyyyyyyyyzzzzzzzzzz"

    10

    Returns: 0

  204. "aaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbcccccccccc"

    49

    Returns: 0

  205. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab"

    0

    Returns: 48

  206. "aaaaaaabbbbbbcccccddddeeefffgghhiijjklmnopr"

    22

    Returns: 1

  207. "abcddeeffggghhhiiijjjjkkkkllllmmmmmnnnnnoooooppppp"

    49

    Returns: 0

  208. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcdefghijk"

    46

    Returns: 0

  209. "aaaaabbbbbcccccdddddeeeeeffffggghhyuiopm"

    9

    Returns: 2

  210. "aaabbbcccdd"

    2

    Returns: 0

  211. "dfgfgfdfgdfwerrdudfrtujyukjhhfvgjuhjkjyuuoiuoiuio"

    23

    Returns: 0


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: