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
You are also given the
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
"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.
"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'.
""
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.
"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'.
"QWERTYUIOPASDFGHJKLZXC"
10
5
Returns: ""
""
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.
"QWERTYUIOPASDFGHJKLZXCVBNM"
26
26
Returns: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
""
26
0
Returns: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
""
1
0
Returns: "A"
""
1
1
Returns: ""
"QWERTYUIOPASDFGHJKLZXCVBNMHELLO"
1
0
Returns: ""
"QWERTYUIOPASDFGHJKLZXCVBNMHELLO"
1
1
Returns: "A"
"CNZIBKSTMROQ"
8
8
Returns: "BCIKMNOQ"
"ZOHQBXEGKRYMTDWSL"
10
9
Returns: "ABDEGHKLMO"
"CMZRRNTXWXFVCLYWPOUDWMBCUPKXRFLNTQNLOVVUZBR"
18
10
Returns: ""
"JISXQLCDTRBAPYMHWNEOK"
9
8
Returns: "ABCDEFHIJ"
"MPXNISZQLRCTUDAVKYJGBW"
22
1
Returns: ""
"SONAP"
4
1
Returns: "ABCD"
"PSMONINIRTSOHTNISOINPRVSOSTPTWAPRVSRRQSSVRMINWTTTI"
14
6
Returns: "ABCDEFGHIJKMNO"
"HIMKXICWTDWUDTPKENCKTCNLMCCNNLDPKGITPNEKXALENEGM"
26
16
Returns: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"AGDXTBUKSVOQZPFNY"
2
2
Returns: "AB"
"RTOXJDNAYSGHIVEPZBWL"
7
3
Returns: "ABCDFKM"
"TGSZLBADJRMIPK"
21
13
Returns: "ABCDEFGHIJKLMNOPQRSTU"
"JNBCLTDVMOGFKWYXIQU"
9
2
Returns: "ABCEHPRSZ"
"SSSHSHBHHBHHBHHSSHHHHHSSSSBHBHBBHBBBHSSBB"
24
13
Returns: ""
"BTZQMILRYJE"
6
4
Returns: "ABCEIJ"
"ZN"
9
4
Returns: ""
"OTYWHDGJVFN"
26
20
Returns: ""
"YXMPLFLTBFYLFPLYPBFFPXBFMPLTTFPFLFBXFBBMMLY"
5
2
Returns: "ABCDF"
"DULDHWVGCWJOHNWGGDWKNWVOUNCLJLLCNHKLJVDYG"
19
6
Returns: "ABCDEFGHIJKMPQRSTXZ"
"JSSAWVPHATLBPJHSARIRYIAKTQVUYUAPFLGISSKB"
24
12
Returns: ""
"BVMROQAPFSYIZDH"
7
4
Returns: "ABCDEFG"
"DXFOYKVBZLCEGIWSPRJQTHU"
21
9
Returns: ""
"THGSPFVOUWDAMJRNQECXIKZB"
24
18
Returns: ""
"FSEQZABPKDMHFOHHSOALPNGGHBLNHLKLGVWSAJAKHSV"
19
17
Returns: "ABCDEFGHIJKLMNOPQSV"
"PUJMBQTSYOKWXHVG"
5
0
Returns: "ACDEF"
"BSLWFIT"
12
0
Returns: "ACDEGHJKMNOP"
"FYWXM"
11
7
Returns: ""
"LUBGDMQRWXVOYEIAT"
17
10
Returns: "ABCDEFGHIJKLMNOPQ"
"JQXEGRKUFPNMZHSAO"
14
10
Returns: "ABCDEFGHIJKMNO"
"CSACYLBLYCUAVAVWAIWAAFFINDOLFNXLALXCONDLXYOLN"
22
4
Returns: ""
"OLUZKCGOBBGCTACQWGRGJMECTAAFJILXEOMTKCKIBWAI"
15
4
Returns: ""
"ANOSLWVKCXFIMRJDTBQP"
9
2
Returns: ""
"QFRYIHAZKMXDTW"
7
5
Returns: "ABCDFHI"
"XGVMMGRWRREXLQWVLEYXWGELOOQGLVORGWVQLXLLV"
19
14
Returns: ""
"APSWLQBMGKJUXYOFRENDTIZV"
11
10
Returns: "ABCDEFGIJKL"
"LHMGGGKAAKKKMKGHMLKGGMGKAAKHGFGGHKKMFLAMAGHMKHMHLK"
19
6
Returns: "ABCDEFGHIJKLNOPQRST"
"HRKXSSGORWZSWSAMAATTUZWGQOSTMSGHKGZQUTMRTWLXXUASB"
3
1
Returns: "ACD"
"ZRKGBJTOFDMWCYXIVPLS"
7
1
Returns: "ABEHNQU"
"VYYNPBFKKSVNECJYQXQWRMPHSCFMYPPPTTPSMFCTOYZOR"
18
13
Returns: "ABCDEFGHIJKLMNOPQR"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
22
16
Returns: ""
"GFDNQFXNXNTNTTIXKDMYXHMWYCBBEHYTXQQXNYQBTZEFG"
10
6
Returns: "ABCDEFGJLO"
"XVJNAWJMTZMWCEYORPQAKSSDAIKAHUJSYGDPEMVRDWSU"
21
17
Returns: ""
"WNVZWZMEEYPCYCKHQGMRELRMZZQUPPCZKZSFJIVWAGNQ"
14
13
Returns: "ABCEFGHIJKLMNP"
"OSGPIKWIWWAISDUHBMUKPRSZXUULBKZQPQRAZIDQAABBXL"
22
2
Returns: ""
"IMVQGPN"
16
6
Returns: "ABCDEFGHIJKLMNPQ"
"IYF"
15
6
Returns: ""
"NMRZDYI"
1
1
Returns: "D"
"D"
15
9
Returns: ""
"ABTNHZKRXDYSPIO"
12
11
Returns: "ABCDHIKNOPRS"
"OCQALKYDPWNIRVS"
15
10
Returns: "ABCDEFGHIKLNOPQ"
"TFTFHQTQFBFLXLWQXLBOOQQBXOOFBQFBTXLTOXLHTTLX"
11
6
Returns: "ABCDEFGHLOQ"
"EWYUYHWFFUUFFUNVMFWYWHVWIVYNTIVHTVITMMWMYP"
4
2
Returns: "ABEF"
"NWPOKQCFAMLEYRUJIT"
17
15
Returns: "ABCDEFIJKLMNOPQRT"
"KZXZSXFRXKZXGEZYTFSMHRZSEGTRFXHMHZZXREFXXRFYZXH"
19
7
Returns: "ABCDEFGHIJKLMNOPQRU"
"YVVQQDDIYIIISIVXISDXYJXJIVVVJJDSISIQJQQIJJX"
18
5
Returns: "ABCDEFGHIJKLMNOPQS"
"IZZZZHAHRHJMVXNEPPMVEZIXIEVNZKPKIJBPPLKPJTEBVJ"
2
1
Returns: "AC"
"RRZRVRRVFZFFZRRFFFVRRFVRZZFVFFFZVZFZRZRRRZFVZ"
4
3
Returns: "AFRV"
"KNNKXYXEXNTIXXEXIIXNWKKEDITTTWXNINTYETWWK"
9
8
Returns: "ADEIKNTWX"
"NLYMDABJRXOKSUCPGFQ"
8
0
Returns: ""
"T"
3
0
Returns: "ABC"
"RNBWXJ"
15
5
Returns: "ABCDEFGHIJKLNRW"
"ZDUMFQJVCOSBPYLIRK"
24
1
Returns: ""
"IVRVRAKKRGRRDIRDVXNIGPGXDPAXXIDOLQKWMCKBLOI"
18
6
Returns: ""
"VTVVWXFXVQIFXTIFTXIVXFWWQQWVTFVFXWFTQVWWIWTXTXITI"
18
0
Returns: "ABCDEGHJKLMNOPRSUY"
"SYLQRBVHODMRLWMXYFOQNHJYHBDHFRMOYUFJEMUNEGGYMX"
17
5
Returns: ""
"GBOS"
3
3
Returns: "BGO"
"KFYDFUQFKCFDCUYUNFCSFDDSSYSFNQCQSCDQCUFNQFCUSNC"
12
6
Returns: "ABCDEFGHIKNQ"
"RLZCJGVQ"
1
1
Returns: "C"
"KYRUXCIWP"
21
18
Returns: ""
"CPPVFAJPGQQQXCNJIPTELXCGSVBXVXAEJDGEBIYDBGEMJII"
3
2
Returns: "ABH"
"HAGBZVMNQSTDIUXY"
14
5
Returns: "ABCDEFGHJKLOPR"
"APJGDUSROEQLHYTKBINMFVZC"
7
2
Returns: ""
"LJCMRJULYMNQEUNEEMOQOKPHWMFWGMPWUIVHVZLE"
4
1
Returns: "ABCD"
"HDPSWAHLBXEADSMAKBWHYAHSWBEMYYYAAGMSAWHKHWGLGPHKS"
24
7
Returns: ""
"ZHRQYOFVMCGEBKX"
11
6
Returns: "ABCDEFGHIJL"
"SKTVYZOMHDILEQUFPRC"
5
2
Returns: "ABCDG"
"ANDCNKDWEIAQFCTXQEYTDJEQZZQALPATSTCBVIVQZVZCDBJ"
14
13
Returns: "ABCDEFGIJKLNPQ"
"HSLMVF"
16
13
Returns: ""
"WTQHFYUKCO"
5
1
Returns: "ABCDE"
"QBNDXVZCPWEIRALMHSJK"
22
8
Returns: ""
"ABCDEF"
6
3
Returns: "ABCGHI"
"ASDFSARWEQRJKLDREWREWRERLEWJKRELWKJRWEJLELQNMRJE"
26
8
Returns: ""
"Z"
2
1
Returns: "AZ"
"AEI"
26
3
Returns: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"