Statistics

Problem Statement for "GoodLetters"

Problem Statement

All letters in this problem are uppercase English letters: 'A' to 'Z'. In other words, the 26 letters one can find on a standard US keyboard.


You are given the String good. The letters that appear (one or more times) in good are good. The letters that don't appear in good are bad.

You are also given the ints N and G.

We are looking for a string with the following properties:

  • It consists of exactly N letters.
  • All those letters are mutually distinct.
  • Exactly G letters in this string are good.

If such strings exist, construct and return any one such string. Otherwise, return an empty string.

Definition

Class:
GoodLetters
Method:
construct
Parameters:
String, int, int
Returns:
String
Method signature:
String construct(String good, int N, int G)
(be sure your method is public)

Constraints

  • good will have between 0 and 50 characters, inclusive.
  • Each character in good will be from 'A'-'Z'.
  • N will be between 1 and 26, inclusive.
  • G will be between 0 and N, inclusive.

Examples

  1. "AEIOU"

    10

    3

    Returns: "BLUEPRINTS"

    Vowels are good, consonants are bad. We want a 10-character string with 3 distinct vowels and 10-3 = 7 distinct consonants.

  2. "AAEEIOUIOUIOU"

    10

    3

    Returns: "BLUEPRINTS"

    This is essentially the same test case as in the previous example. Multiple occurrences of the same letter in good have no effect. The good letters are still exactly 'A', 'E', 'I', 'O', and 'U'.

  3. ""

    7

    1

    Returns: ""

    There are no good letters at all, and therefore there is no string with 7 letters out of which one is good.

  4. "EEEEE"

    5

    2

    Returns: ""

    Remember that we cannot repeat letters. The goal here is to create a string that has two distinct good letters, but the only good letter is 'E'.

  5. "QWERTYUIOPASDFGHJKLZXC"

    10

    5

    Returns: ""

  6. ""

    3

    0

    Returns: "ABC"

    Here we want a string of three distinct bad letters. Any such string, for example "CAT" or "DOG", will be accepted.

  7. "QWERTYUIOPASDFGHJKLZXCVBNM"

    26

    26

    Returns: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

  8. ""

    26

    0

    Returns: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

  9. ""

    1

    0

    Returns: "A"

  10. ""

    1

    1

    Returns: ""

  11. "QWERTYUIOPASDFGHJKLZXCVBNMHELLO"

    1

    0

    Returns: ""

  12. "QWERTYUIOPASDFGHJKLZXCVBNMHELLO"

    1

    1

    Returns: "A"

  13. "CNZIBKSTMROQ"

    8

    8

    Returns: "BCIKMNOQ"

  14. "ZOHQBXEGKRYMTDWSL"

    10

    9

    Returns: "ABDEGHKLMO"

  15. "CMZRRNTXWXFVCLYWPOUDWMBCUPKXRFLNTQNLOVVUZBR"

    18

    10

    Returns: ""

  16. "JISXQLCDTRBAPYMHWNEOK"

    9

    8

    Returns: "ABCDEFHIJ"

  17. "MPXNISZQLRCTUDAVKYJGBW"

    22

    1

    Returns: ""

  18. "SONAP"

    4

    1

    Returns: "ABCD"

  19. "PSMONINIRTSOHTNISOINPRVSOSTPTWAPRVSRRQSSVRMINWTTTI"

    14

    6

    Returns: "ABCDEFGHIJKMNO"

  20. "HIMKXICWTDWUDTPKENCKTCNLMCCNNLDPKGITPNEKXALENEGM"

    26

    16

    Returns: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

  21. "AGDXTBUKSVOQZPFNY"

    2

    2

    Returns: "AB"

  22. "RTOXJDNAYSGHIVEPZBWL"

    7

    3

    Returns: "ABCDFKM"

  23. "TGSZLBADJRMIPK"

    21

    13

    Returns: "ABCDEFGHIJKLMNOPQRSTU"

  24. "JNBCLTDVMOGFKWYXIQU"

    9

    2

    Returns: "ABCEHPRSZ"

  25. "SSSHSHBHHBHHBHHSSHHHHHSSSSBHBHBBHBBBHSSBB"

    24

    13

    Returns: ""

  26. "BTZQMILRYJE"

    6

    4

    Returns: "ABCEIJ"

  27. "ZN"

    9

    4

    Returns: ""

  28. "OTYWHDGJVFN"

    26

    20

    Returns: ""

  29. "YXMPLFLTBFYLFPLYPBFFPXBFMPLTTFPFLFBXFBBMMLY"

    5

    2

    Returns: "ABCDF"

  30. "DULDHWVGCWJOHNWGGDWKNWVOUNCLJLLCNHKLJVDYG"

    19

    6

    Returns: "ABCDEFGHIJKMPQRSTXZ"

  31. "JSSAWVPHATLBPJHSARIRYIAKTQVUYUAPFLGISSKB"

    24

    12

    Returns: ""

  32. "BVMROQAPFSYIZDH"

    7

    4

    Returns: "ABCDEFG"

  33. "DXFOYKVBZLCEGIWSPRJQTHU"

    21

    9

    Returns: ""

  34. "THGSPFVOUWDAMJRNQECXIKZB"

    24

    18

    Returns: ""

  35. "FSEQZABPKDMHFOHHSOALPNGGHBLNHLKLGVWSAJAKHSV"

    19

    17

    Returns: "ABCDEFGHIJKLMNOPQSV"

  36. "PUJMBQTSYOKWXHVG"

    5

    0

    Returns: "ACDEF"

  37. "BSLWFIT"

    12

    0

    Returns: "ACDEGHJKMNOP"

  38. "FYWXM"

    11

    7

    Returns: ""

  39. "LUBGDMQRWXVOYEIAT"

    17

    10

    Returns: "ABCDEFGHIJKLMNOPQ"

  40. "JQXEGRKUFPNMZHSAO"

    14

    10

    Returns: "ABCDEFGHIJKMNO"

  41. "CSACYLBLYCUAVAVWAIWAAFFINDOLFNXLALXCONDLXYOLN"

    22

    4

    Returns: ""

  42. "OLUZKCGOBBGCTACQWGRGJMECTAAFJILXEOMTKCKIBWAI"

    15

    4

    Returns: ""

  43. "ANOSLWVKCXFIMRJDTBQP"

    9

    2

    Returns: ""

  44. "QFRYIHAZKMXDTW"

    7

    5

    Returns: "ABCDFHI"

  45. "XGVMMGRWRREXLQWVLEYXWGELOOQGLVORGWVQLXLLV"

    19

    14

    Returns: ""

  46. "APSWLQBMGKJUXYOFRENDTIZV"

    11

    10

    Returns: "ABCDEFGIJKL"

  47. "LHMGGGKAAKKKMKGHMLKGGMGKAAKHGFGGHKKMFLAMAGHMKHMHLK"

    19

    6

    Returns: "ABCDEFGHIJKLNOPQRST"

  48. "HRKXSSGORWZSWSAMAATTUZWGQOSTMSGHKGZQUTMRTWLXXUASB"

    3

    1

    Returns: "ACD"

  49. "ZRKGBJTOFDMWCYXIVPLS"

    7

    1

    Returns: "ABEHNQU"

  50. "VYYNPBFKKSVNECJYQXQWRMPHSCFMYPPPTTPSMFCTOYZOR"

    18

    13

    Returns: "ABCDEFGHIJKLMNOPQR"

  51. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    22

    16

    Returns: ""

  52. "GFDNQFXNXNTNTTIXKDMYXHMWYCBBEHYTXQQXNYQBTZEFG"

    10

    6

    Returns: "ABCDEFGJLO"

  53. "XVJNAWJMTZMWCEYORPQAKSSDAIKAHUJSYGDPEMVRDWSU"

    21

    17

    Returns: ""

  54. "WNVZWZMEEYPCYCKHQGMRELRMZZQUPPCZKZSFJIVWAGNQ"

    14

    13

    Returns: "ABCEFGHIJKLMNP"

  55. "OSGPIKWIWWAISDUHBMUKPRSZXUULBKZQPQRAZIDQAABBXL"

    22

    2

    Returns: ""

  56. "IMVQGPN"

    16

    6

    Returns: "ABCDEFGHIJKLMNPQ"

  57. "IYF"

    15

    6

    Returns: ""

  58. "NMRZDYI"

    1

    1

    Returns: "D"

  59. "D"

    15

    9

    Returns: ""

  60. "ABTNHZKRXDYSPIO"

    12

    11

    Returns: "ABCDHIKNOPRS"

  61. "OCQALKYDPWNIRVS"

    15

    10

    Returns: "ABCDEFGHIKLNOPQ"

  62. "TFTFHQTQFBFLXLWQXLBOOQQBXOOFBQFBTXLTOXLHTTLX"

    11

    6

    Returns: "ABCDEFGHLOQ"

  63. "EWYUYHWFFUUFFUNVMFWYWHVWIVYNTIVHTVITMMWMYP"

    4

    2

    Returns: "ABEF"

  64. "NWPOKQCFAMLEYRUJIT"

    17

    15

    Returns: "ABCDEFIJKLMNOPQRT"

  65. "KZXZSXFRXKZXGEZYTFSMHRZSEGTRFXHMHZZXREFXXRFYZXH"

    19

    7

    Returns: "ABCDEFGHIJKLMNOPQRU"

  66. "YVVQQDDIYIIISIVXISDXYJXJIVVVJJDSISIQJQQIJJX"

    18

    5

    Returns: "ABCDEFGHIJKLMNOPQS"

  67. "IZZZZHAHRHJMVXNEPPMVEZIXIEVNZKPKIJBPPLKPJTEBVJ"

    2

    1

    Returns: "AC"

  68. "RRZRVRRVFZFFZRRFFFVRRFVRZZFVFFFZVZFZRZRRRZFVZ"

    4

    3

    Returns: "AFRV"

  69. "KNNKXYXEXNTIXXEXIIXNWKKEDITTTWXNINTYETWWK"

    9

    8

    Returns: "ADEIKNTWX"

  70. "NLYMDABJRXOKSUCPGFQ"

    8

    0

    Returns: ""

  71. "T"

    3

    0

    Returns: "ABC"

  72. "RNBWXJ"

    15

    5

    Returns: "ABCDEFGHIJKLNRW"

  73. "ZDUMFQJVCOSBPYLIRK"

    24

    1

    Returns: ""

  74. "IVRVRAKKRGRRDIRDVXNIGPGXDPAXXIDOLQKWMCKBLOI"

    18

    6

    Returns: ""

  75. "VTVVWXFXVQIFXTIFTXIVXFWWQQWVTFVFXWFTQVWWIWTXTXITI"

    18

    0

    Returns: "ABCDEGHJKLMNOPRSUY"

  76. "SYLQRBVHODMRLWMXYFOQNHJYHBDHFRMOYUFJEMUNEGGYMX"

    17

    5

    Returns: ""

  77. "GBOS"

    3

    3

    Returns: "BGO"

  78. "KFYDFUQFKCFDCUYUNFCSFDDSSYSFNQCQSCDQCUFNQFCUSNC"

    12

    6

    Returns: "ABCDEFGHIKNQ"

  79. "RLZCJGVQ"

    1

    1

    Returns: "C"

  80. "KYRUXCIWP"

    21

    18

    Returns: ""

  81. "CPPVFAJPGQQQXCNJIPTELXCGSVBXVXAEJDGEBIYDBGEMJII"

    3

    2

    Returns: "ABH"

  82. "HAGBZVMNQSTDIUXY"

    14

    5

    Returns: "ABCDEFGHJKLOPR"

  83. "APJGDUSROEQLHYTKBINMFVZC"

    7

    2

    Returns: ""

  84. "LJCMRJULYMNQEUNEEMOQOKPHWMFWGMPWUIVHVZLE"

    4

    1

    Returns: "ABCD"

  85. "HDPSWAHLBXEADSMAKBWHYAHSWBEMYYYAAGMSAWHKHWGLGPHKS"

    24

    7

    Returns: ""

  86. "ZHRQYOFVMCGEBKX"

    11

    6

    Returns: "ABCDEFGHIJL"

  87. "SKTVYZOMHDILEQUFPRC"

    5

    2

    Returns: "ABCDG"

  88. "ANDCNKDWEIAQFCTXQEYTDJEQZZQALPATSTCBVIVQZVZCDBJ"

    14

    13

    Returns: "ABCDEFGIJKLNPQ"

  89. "HSLMVF"

    16

    13

    Returns: ""

  90. "WTQHFYUKCO"

    5

    1

    Returns: "ABCDE"

  91. "QBNDXVZCPWEIRALMHSJK"

    22

    8

    Returns: ""

  92. "ABCDEF"

    6

    3

    Returns: "ABCGHI"

  93. "ASDFSARWEQRJKLDREWREWRERLEWJKRELWKJRWEJLELQNMRJE"

    26

    8

    Returns: ""

  94. "Z"

    2

    1

    Returns: "AZ"

  95. "AEI"

    26

    3

    Returns: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"


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: