Problem Statement
The Happy Letter game is played as follows: At the beginning, several players enter the field. Each player has a lowercase English letter on their back. The game is played in turns. In each turn, you select two players with different letters, and both selected players leave the field. The game ends once it is impossible to take another turn.
If there are some players left in the field at the end of the game, they must all have the same letter. That letter is called the winning letter. If there are no players left in the field at the end of the game, there is no winning letter.
You are given a
Definition
- Class:
- HappyLetterDiv1
- Method:
- getHappyLetters
- Parameters:
- String
- Returns:
- String
- Method signature:
- String getHappyLetters(String letters)
- (be sure your method is public)
Notes
- If there's no happy letter, return the empty String.
Constraints
- letters will contain between 1 and 50 elements.
- Each element of letters will be a lowercase English letter ('a'-'z').
Examples
"aabbacccc"
Returns: "abc"
Each of the three letters can be the winning letter. Here is one possibility how 'a' can be the winning letter: Let's number the players 0 through 8 in the order in which they appear in the input. We can then play the game as follows: Send away players 1 ('a') and 8 ('c'). Send away players 2 ('b') and 6 ('c'). Send away players 7 ('c') and 0 ('a'). Send away players 5 ('c') and 3 ('b'). The only player left is player 4 ('a'), hence 'a' is the winning letter.
"aaaaaaaccdd"
Returns: "a"
Only letter 'a' can win.
"ddabccadb"
Returns: "abcd"
"aaabbb"
Returns: ""
No letter can win.
"d"
Returns: "d"
"ig"
Returns: ""
"ka"
Returns: ""
"uh"
Returns: ""
"bb"
Returns: "b"
"uu"
Returns: "u"
"pp"
Returns: "p"
"jj"
Returns: "j"
"sysetts"
Returns: "esty"
"asppqsp"
Returns: "apqs"
"rqkxpkh"
Returns: "hkpqrx"
"aqaaaaq"
Returns: "a"
"oshhshh"
Returns: "h"
"wwwwazw"
Returns: "w"
"mfffcfd"
Returns: "f"
"pyyzyplypyly"
Returns: "y"
"ocoooccscloolllll"
Returns: "clos"
"rdokcogscosn"
Returns: "cos"
"fffwffpfxfff"
Returns: "f"
"bbbobmbbbbrb"
Returns: "b"
"dqexqqqqeqqq"
Returns: "q"
"wdddduwddddd"
Returns: "d"
"uggeeuueguuooueug"
Returns: "egou"
"zhzqhhhzhzzhzhqqz"
Returns: "hqz"
"sbpnqkaoowjvipsxa"
Returns: "abijknopqsvwx"
"fgpfgfffpfhfffhgf"
Returns: "f"
"mwjwwwwewwwwwcwsy"
Returns: "w"
"gggqqgqgqqgqqqqqq"
Returns: "q"
"nnmznnnmnzznznnnz"
Returns: "n"
"nkntninftftntkkfttnntk"
Returns: "fknt"
"udduuuddudssssuddssusu"
Returns: "dsu"
"idmhhurjmysntqnxlokgpz"
Returns: "hmn"
"hhhzhvhvvzhhhhvhhhvhhz"
Returns: "h"
"mjmdmmmembmmmmmmmmrkmz"
Returns: "m"
"sssasospassopsssssspss"
Returns: "s"
"rrufumrrfrurrrrrrrrfru"
Returns: "r"
"kzffrzfffkfkzorkokrfovjrjkr"
Returns: "fjkorvz"
"dohoohdouooujdhodhdoooodjdj"
Returns: "dhjou"
"ptkfqxvtrmejknptdiqcuadhxww"
Returns: "acdefhijkmnpqrtuvwx"
"llullqellulullloulqllqqlqll"
Returns: "l"
"wrwueywsqwpwlvwwwwxswwwwgww"
Returns: "w"
"yylyqyyvqqyyyyyqyvqyzyyqvyv"
Returns: "y"
"dwwwwwwpwjjpjwwwwpwjwwwpwwp"
Returns: "w"
"lpvupuruevrtelluuekkkrlrttttltmu"
Returns: "eklprtuv"
"bfffbsvffvvvvvfffffftvfvfssvffba"
Returns: "bfsv"
"zoyfelhfounpmmpvdrgiazoenedwkmbs"
Returns: "defmnopz"
"jjjpjjjjjpjjppjjpjpjjppppjjjppjj"
Returns: "j"
"dddnddldkdlxddddddderdblddiodndd"
Returns: "d"
"wmwwwccwwwwwmwmmccwwxwmxwchcwwwm"
Returns: "w"
"dykyyyydyykdykzyyyydykyykkdyykyy"
Returns: "y"
"suwewqnqwlwswqewiswnnnenezsqllsienzqi"
Returns: "eilnqsuwz"
"zyxxxxxyvxzlxzxvyxyzlvxxzzzvxyxxxlvbx"
Returns: "blvxyz"
"bimbxrmwbqjbcctchioilonbbhzxfyiipgyaf"
Returns: "abcfghijlmnopqrtwxyz"
"pppppcccpcccccccccpccppcscpcpcppcpccc"
Returns: "c"
"yhytyaygcwyyyypaysayyyyyycfnyyygyuldy"
Returns: "y"
"uxgodudouxuududxoouuuuuouduuuuuuyuuod"
Returns: "u"
"yhhoyhhhihthhyihihhhyhhyyhyhhhiyhhoih"
Returns: "h"
"ygkfidfkioyfigdgvdffgyyigyoizfgyidgoggyuou"
Returns: "dfgikouy"
"mrmmpprppmprjmrmmrpmrmmmrpmmrjrrmpmmprmrmq"
Returns: "jmpr"
"xvryyiadmhibkxflccanrozobbgfmpinxregkbwddc"
Returns: "abcdfgikmnorxy"
"gggqqgqqgggqqqqqqgqgqqggqqgqqgqqgqqqggqqqg"
Returns: "q"
"ivfaepeejleeeeihiaeeeelegyeeeeeedyeeweeeeo"
Returns: "e"
"rrnqrrhenrrnfarqrrrrrrmreeaanehqrrrrrerrrr"
Returns: "r"
"yyjyyiiyyiyyyyjyjyyyyjiyyiyyyyyjiiyyjijjyj"
Returns: "y"
"tzbmyqzfrqgfmyzyfqcfzzrrzzqyygyagqryftqgzrfrzrf"
Returns: "abcfgmqrtyz"
"aacaiaaccccacacccaaicicaacacaaasaaaccivaaaivaac"
Returns: "acisv"
"dmwxfnjeilwsydhxdjbqnedenjvrtknxhobrtkhfdyxsjbt"
Returns: "bdefhijklmnoqrstvwxy"
"xxkxukxxxxyuuxxukuxxxxxuxuxxxxkxuuuxuuxxunxxnuu"
Returns: "x"
"eueeeuleeeeteeeeupvecemrinsjeeeemexsseueeenepre"
Returns: "e"
"aaeahazqheqapapnzmqqqaaaaamaaaapzaazaaaaaaaqqae"
Returns: "a"
"mmccmmmlmcmmmilmicmmmlmmlcmmcmmclrmmmimmliimmll"
Returns: "m"
"diccaibcbodcochcaabichbbiwayoboccccdaiabiaahaiciyc"
Returns: "abcdhioy"
"ftokjyojtokibfoyfjotjfjfjoffjfotfoooojoofffffojfff"
Returns: "fjkoty"
"dtdddtddtdddiddsdtdiddsdttdsstsddttddssddddtsitddd"
Returns: "d"
"nownqmwjihrurhuomxkvqayaffuvxlraoefnbitgyvmxntsx"
Returns: "afhimnoqrtuvwxy"
"emsmdqnbpavrkgweewpxpzicpmkwudqzgyktmavsgcnwbljcc"
Returns: "abcdegijklmnpqrstuvwxyz"
"xgxjptzyiwljbinqkmghapqetezemsndftttettptldnbgsbwp"
Returns: "bdegijlmnpqstwxz"
"wsngcpjgwnqubscuhwicbezihscditkppfezesutfgukpbft"
Returns: "bcefghiknpstuwz"
"wgnxusztptsxzjpzfxpzevjszmwhtmqvznumtmtokzzsgvhsy"
Returns: "efghjkmnopqstuvwxyz"
"pjyddwispfywqqhuduevgctkokufemhimlivlrybbpiyusmbve"
Returns: "bdefhiklmpqsuvwy"
"vmtbsmmkzrmykkvfrbvzdogrtpkkszddmvfpsksmdkosdkfc"
Returns: "bdfkmoprstvz"
"acgmapyqgaubarsauogakgeysavgyobmigpppsiqgpaboaiwp"
Returns: "abcegikmopqrsuvwy"
"xyosssitgothgwsmjwmyxmvkmkxsooioltglashslyksjyywks"
Returns: "ghijklmostwxy"
"wbbutwixiwxgsucqsiqqbqbxuxwrbbwcsiwiwicrbwcixtxn"
Returns: "bciqrstuwx"
"bxpctupdwxepssfuaewtpulllqqduomudmqmmlwcsecumsawm"
Returns: "abcdeflmopqstuwx"
"geccjadkniggednkptvdinsktglcpinmemgjtjgcetvkgijvgp"
Returns: "cdegijkmnptv"
"vavajoyijzgrodjavjtzhdadsytarjrgroopvgddrfvsjiov"
Returns: "adgijorstvyz"
"lypfkloceycctcplcccfhcvgppvflcksevykvycflfnksncck"
Returns: "cefghklnopstvy"
"skzeggkfgehfedfdskbhadkszbpdkksawehwxkbzfywekrogwf"
Returns: "abdefghkswz"
"duzzfxqfffxdguzxgcuuxxxxdfxdztdzgzztxgdvxlxgtzfq"
Returns: "dfgqtuxz"
"bkmkankjbjblknnabkvnvdkaadaxialakjkdvnnkdlivbdiab"
Returns: "abdijklmnvx"
"zxvzpzpxcphtvdxpwhpwvwwhzdwzwdxwvzvmvpdhtdapzhwzzd"
Returns: "dhptvwxz"
"boxwrkqxoexwqabbbuszaaueuukjbbberrqzabqoxwbrzqba"
Returns: "abekoqruwxz"
"abqneuvfvoaabvayuyvfbbqeyofnuqeofpyeneyqafonfquou"
Returns: "abefnopquvy"
"ttbyxtmgttmxgmxygyymxggtgttybbtgtgmgmxugxbxgbytbgt"
Returns: "bgmtxy"
"lfmmmdytiqmewloytitiltfiyylnoltotyitnofwieithhof"
Returns: "efhilmnotwy"
"ikdiipnspsdiksfpdkdnmmmdkilismdpdplnlsnnnwsklldsp"
Returns: "dfiklmnpsw"
"zaaaabbbbcccc"
Returns: "abcz"
"a"
Returns: "a"
"abbbcccddeeff"
Returns: "abcdef"
"aabbccdd"
Returns: "abcd"
"aaabbbcccddd"
Returns: "abcd"
"aabbbcccd"
Returns: "abcd"
"aabbbbbbbbbbccccccccccdddd"
Returns: "abcd"
"aaaaaaaaaabbbbbbbbbcccccccdddd"
Returns: "abcd"
"aabbbccccdddd"
Returns: "abcd"
"aaaabbbbccccd"
Returns: "abcd"
"aaaabbbcccd"
Returns: "abcd"
"abbccdd"
Returns: "abcd"
"abccd"
Returns: "abcd"
"aaaaaaaabbbbbbbbcccccddd"
Returns: "abcd"
"adbbaddbbbccdcbcddbcccc"
Returns: "abcd"
"gccabba"
Returns: "abcg"
"abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy"
Returns: "abcdefghijklmnopqrstuvwxy"
"aaabbbbbcccccdd"
Returns: "abcd"
"aaaaabbbbcccd"
Returns: "abcd"
"aaabbbbccccdddd"
Returns: "abcd"
"xaaaabbbccc"
Returns: "abcx"
"aabc"
Returns: "a"
"aaaaabbbbbcccccddddeeeeffffgggghhhiiijjkklmnzzzzzz"
Returns: "abcdefghijkz"
"aabbbbbbcccccddddd"
Returns: "abcd"
"aaaaaaaaaabbbbbbbbbbedfgr"
Returns: "abdefgr"
"aaabbbccddeeff"
Returns: "abcdef"
"aabbbbbccccdddd"
Returns: "abcd"
"abbbbbbbccccccdddddeeefff"
Returns: "abcdef"
"aaabbbcccd"
Returns: "abc"
"aaaaaaaaaa"
Returns: "a"
"aaaaaaaabbbbbbbbccccccccdef"
Returns: "abcdef"
"aaaabcde"
Returns: "a"
"aaaabbbbccd"
Returns: "abcd"
"abbbcccdddd"
Returns: "abcd"
"aaaaaaaaaabbbbbbbbbbccccccccccdd"
Returns: "abcd"
"aabcdd"
Returns: "ad"
"bccde"
Returns: "bcde"
"aaaaabbbbbcccccdd"
Returns: "abcd"
"bkvhlidsonvgdqbgkloibwmpqxllhwaxspkzmteauunalxtezp"
Returns: "abdeghiklmnopqstuvwxz"
"aabbbccc"
Returns: "abc"
"bbz"
Returns: "b"
"aabbccd"
Returns: "abcd"
"aaaabbcc"
Returns: "a"
"gebeggcabbbdbddgdehegbegfeghhgdcfadddghdcf"
Returns: "abcdefgh"
"sylvckwpqtpydoixpdpldevhnnhnodltquqdgeqfwzowsrsell"
Returns: "dehlnopqstvwy"
"aabccdd"
Returns: "abcd"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: "a"
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"
Returns: "abcdefghijklmnopqrstuvwx"
"aaaaabbbbcccx"
Returns: "abcx"
"aabbbbbcccccddd"
Returns: "abcd"
"aaaabbbbcccdd"
Returns: "abcd"
"aaaaaabbbbbccccdd"
Returns: "abcd"
"aaaaaaaaaabbbbbbbcccccccwwww"
Returns: "abcw"
"abbccdddd"
Returns: "abcd"
"abccc"
Returns: "c"
"aaaaabcedfg"
Returns: "abcdefg"
"aaabbccdddddd"
Returns: "abcd"
"aaabbbcccccc"
Returns: "c"
"adddddbbbbcceeeee"
Returns: "abcde"
"zzzzzzzyyyy"
Returns: "z"