Problem Statement
The reindeer have invented a new magic spell. To pick a name for the spell, they decided to concatenate their own names.
Of course, this can be done in multiple ways. For example, if there are two reindeer called "bob" and "bobby", they could call the spell either "bobbobby" or "bobbybob". To resolve this ambiguity, the reindeer picked the lexicographically smallest possibility. (In this case, that would be "bobbobby".)
You are given a
Definition
- Class:
- MagicNaming
- Method:
- maxReindeers
- Parameters:
- String
- Returns:
- int
- Method signature:
- int maxReindeers(String magicName)
- (be sure your method is public)
Notes
- Given two distinct strings of equal length, the lexicographically smaller one is the one with a smaller character in the first position where they differ
- The name of each reindeer is a nonempty string of lowercase letters.
- It is always possible that the spell was created by a single reindeer, so the return value is always defined.
- Note that multiple reindeer may share the same name. See Example #5 for clarification.
Constraints
- The length of magicName will be between 1 and 50, inclusive.
- Each character in magicName will be between 'a' and 'z', inclusive.
Examples
"aba"
Returns: 2
The magic spell called "aba" could have been invented by two reindeer called "a" and "ba". Note that this spell could not have been invented by three reindeer. Their names would have to be "a", "b", and "a". However, reindeer with these names would choose the name "aab" for their spell.
"babbaba"
Returns: 2
In this case there might have been two reindeer called "ba" and "bbaba". More than two reindeer would never pick this name for their spell.
"philosophersstone"
Returns: 5
"knuthmorrispratt"
Returns: 7
"acrushpetrtourist"
Returns: 7
"makotoivan"
Returns: 4
"abcdefghijklmnopqrstuvwxyz"
Returns: 26
"x"
Returns: 1
"bba"
Returns: 1
"bbababaabaabaa"
Returns: 1
"abaababaaababaabba"
Returns: 5
"bbbaaaabbaabaabbbabaaaaaaabb"
Returns: 4
"ba"
Returns: 1
"babaaaba"
Returns: 2
"bbabbabaababbbababbbbaaaaaaabbabbbbaabbbbbbaaaa"
Returns: 5
"bbbaababbbbbbaababaabaaab"
Returns: 3
"abbaaaa"
Returns: 2
"bbaaababaaaabbbbbaabbbaa"
Returns: 3
"ababbbbaabaaaaabaabababaabbaaabaa"
Returns: 6
"abbababbabbbaa"
Returns: 5
"bababaa"
Returns: 1
"aaaaabbaaaabbaabab"
Returns: 9
"baabababbaaaabbaaaaaababaabbbabbaba"
Returns: 5
"aababbbbbaabbabaaaabbbbaababababbabbaaabbababbbbba"
Returns: 11
"aaabaaaaaa"
Returns: 4
"baabbaaabbbababba"
Returns: 4
"babaaaabbbabbabbaabaabbabaa"
Returns: 4
"baaaaaaaabbabbaaa"
Returns: 3
"aabbbababbabbbbaaaabaaaabaabaaaabbba"
Returns: 8
"abaababaabaabababbabaab"
Returns: 8
"abbabababbbaaaabbaaaabaaabbbabbabbaa"
Returns: 6
"aabbababbabbaababbaabbbababababbbaabaab"
Returns: 11
"baabbbbaaabaabaaabababbbaaabaabab"
Returns: 5
"aaababaaabaaaaaaababbbaababaabbbbbaabba"
Returns: 9
"bababb"
Returns: 4
"abbaabaabbbbabaaaabbabbaaabaaabbbbababba"
Returns: 8
"abaaaabbababaaababaaabbbaabbabbaabbbbbaabbaaabba"
Returns: 8
"aaabbaabbbbaabaaabbbaabbababbabbabaa"
Returns: 9
"aabbbbbbabbbbabbaaaabbbbbaaabaaaabaaab"
Returns: 6
"kgkjjihjkggjhkjijggh"
Returns: 2
"jhkjhjhgkghjhijjgggiijgkkjgghghikikigihkhkikhghkk"
Returns: 6
"ijhhkgihjigjhhkikghhkh"
Returns: 5
"hijjggggjhhgiihjkkijgii"
Returns: 6
"kjjkkgkkjhiihhhkkggjkhjjkijjhkhkghgigjjhijkhi"
Returns: 3
"jjikjgjgihkijigihjj"
Returns: 3
"ghhgkkjjighhhghhgh"
Returns: 5
"kkkjkiiikkijkihihigkkikhkgikjghgjjgkjjij"
Returns: 1
"ghkgkkgjihkjkggjgkkkikiijgjkjhikghgjihihhhghiig"
Returns: 8
"jihhgkjjhkkjiikjgg"
Returns: 3
"kj"
Returns: 1
"gjikjkikikjg"
Returns: 6
"ig"
Returns: 1
"jjjjkkjjghjgkkihjhijkjjgkhhgkjhkikghijjjkkgkgggkg"
Returns: 7
"kijjiihhgjkihghhgkjkjjkjhi"
Returns: 2
"khjghiijjgkgjkhigjgjggjijikjkiijki"
Returns: 3
"ihhhhgkghikkkkgjggj"
Returns: 4
"jjjgkigjggiihhggghiijkhikjkjghhii"
Returns: 4
"hhjgghgkigjkkiiijjjkikjjjghihhgjgjkijjhij"
Returns: 11
"ikhjjkjg"
Returns: 4
"kjhhikkggjkhkjkkhikhgghijiiigkiigjgijijkgjkgjh"
Returns: 3
"hgghijikghgjkjhkigggkjikghjghgkhghgijhjjki"
Returns: 10
"khggjgikigjkkjihkkkkhijkhiigigkjjik"
Returns: 5
"kigkjggiigkikjjghh"
Returns: 3
"jkghjjkhkkjkijkgihgjihgighhgggkghkihgggiikjkkihg"
Returns: 7
"iigigkihkhgjhjijkghhkjgjkjjigih"
Returns: 7
"jjhggggghhjihikkjj"
Returns: 3
"iihjhkjj"
Returns: 4
"iikijhihkiggggiihhkggkhghkhhikii"
Returns: 7
"kih"
Returns: 1
"fy"
Returns: 2
"zikjbkltvnakagmanazsyvsfxbgnvifkjghtczabqxkpf"
Returns: 2
"mrpewjulnovfikpggkhvpbjhnnuiefiubxpjtplupvixi"
Returns: 9
"ctoskkhzmjpvd"
Returns: 5
"hdvnaznbqwzljo"
Returns: 6
"lbjoqfnsozahrlpjjhxakkhofvwwsksmtyfobojrdc"
Returns: 8
"oykvlbosegruxmbj"
Returns: 4
"ofrbedconibeupaibqbhrsbfsyiiizbuzyswdcis"
Returns: 10
"tencergxvyaajtmssvnsighuvfdssnxmkscegxyvqeeixvnxze"
Returns: 8
"wtgtvejlbkxnzmxcbufwlikrpzt"
Returns: 4
"jssgaihkpjcplkkixvilr"
Returns: 5
"hbmfrmk"
Returns: 3
"esgqtvblarjegjcfvvl"
Returns: 6
"ldbgqrkal"
Returns: 3
"wvurzhgvpnnrlbzbbsijdgdxpjueticwbqnvnlrpkz"
Returns: 3
"tuylyhmajmdmbmgfgqxbgumjtcbqs"
Returns: 3
"fblwddghhsevzhuosjeusfafrwxaofk"
Returns: 10
"sqxmiybmdtvnfgysmanlealrs"
Returns: 4
"zshqbonnrmhuclfuzzi"
Returns: 2
"npsovhphzcghggzxkhmuzteo"
Returns: 6
"jefrytnowmrcvl"
Returns: 5
"kfdfalqejdkczoeyqifrmhrcrgrccvbjm"
Returns: 7
"scilsb"
Returns: 1
"nrlrgsewnysafebzhkrqmyobbdtkqgaakys"
Returns: 6
"oqgcmafzreciidbkalrcufuudtyhzwpjxnysz"
Returns: 9
"ufbmsartfadrobobrnvfdprtpunmwydygfi"
Returns: 5
"bcptxzukqamlqjqnnpesotnb"
Returns: 9
"axcbbhdhsuztecchhjyjfssydfajpnvxsxda"
Returns: 12
"bhwkoimhvomdmhlb"
Returns: 5
"qgzglsqxyntjkvofwegjzfsdpiucajpgkaeyqcsqteu"
Returns: 6
"rlksygnlmjyghjlwlrvmfpopkijpdyxsttwipopbuzkdaposfe"
Returns: 7
"kfxitbtsppvzelpcqyafygwefhnbxlvbktrroldrcfwicllxze"
Returns: 8
"tlensfbnbutucfygzezfrtdfgepanmrjkooysfnohsujbqugkh"
Returns: 6
"dnmywfaaiwruzlilgbiaybtdiledgwbyynwaxixvtjbgsivmwt"
Returns: 10
"sehqcxgckhjbuihrkpqiffvpzslhrlmtzglpsemskthxlqiady"
Returns: 6
"rzsoombuvcwtxczydqpgznqqnhkubylzspvwbsopucfmpsfnqm"
Returns: 9
"vzsrpttzrpnvbmxsxlderudrzmtrkprjgopapmmxqhyctdeouf"
Returns: 4
"bvonublagnfwdutpabtybplbyjsfyphmktksknfaxqetkcphnz"
Returns: 9
"wxaiuhxwweqmfhbplitafbmrketgbuhxiziktduccmknvwzpnt"
Returns: 5
"goibuohakixubdzfmxjfvcmvztlgrrsptddpqgruujkptkjocn"
Returns: 10
"oqkgwjeejkryphryhjpmperhvinwjtyjtajcbsdpyfjdkhntfc"
Returns: 7
"xbzmdhaabycsdklmampemxbwhtxbkkexqylacaeakuuhhqsbhm"
Returns: 3
"miuwrtwqulwvsmbeyrtvtkdyodpbttlvmlizgjrsbqtbqerctk"
Returns: 8
"uxjzyqnfocqulsyzkmdnnivghsamxlatwcnjpmjvsnuvutehje"
Returns: 5
"gqsstjukyaxhrjdieddbocfzmhjtvnejkgqtfajwpoepdsoatv"
Returns: 10
"wiagbotxzkxtnybgpqfgcasuhpjyzhjastspsfbulwqslzpjgm"
Returns: 6
"hhjkmyshucbsjcwrgjtuiqtfzesttiozihknniwibhyrdjxpqq"
Returns: 11
"pjwkmvurnjtgoggscxgxnfrvsynsjswowgerhspgeoldlohymq"
Returns: 7
"avypnpbejmosoymuatjzplygnjnyqelawbuhwbtzffxkvauadc"
Returns: 12
"eoliamiiowizghyrluqycfnuebfrkzvmuvzyyvtfwrtrstupxh"
Returns: 13
"zzzzz"
Returns: 5
Note that multiple reindeer may share the same name.
"gmezsyfytjxyefasinzxyfdktwszdahqszixzbdeoadtrddasd"
Returns: 9
"rri"
Returns: 1
"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
Returns: 49
"gabzhijk"
Returns: 5
"abcdefghijabcdefghijabcdefghijabcdefghijabcdefghij"
Returns: 14
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: 50
"ahahahdjflahahahdjflahahahdjflahahahdjflahahahdjfl"
Returns: 13
"abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde"
Returns: 12
"fdgsgfhasyufbdsjcvdshbuifsdhbfhsdbfhsfsfdsbvfhgsfh"
Returns: 8
"rubenjosesue"
Returns: 4
"qowiuerjsadhjasgdbmncbvjsafgwiueryweirqpefasdj"
Returns: 7
"ardebaoncadencedipingeerrorfghijklmnopqrstuvwxyouz"
Returns: 28